Olá, Jhonny! Tudo bem?
Já que restaurantes é uma lista de dicionários, essa parte da sua solução da atividade parece estar correta.
Há algumas possíveis razões para o comportamento inesperado que você mencionou:
Os dicionários em restaurantes podem não conter a chave 'nome'. É importante verificar se todos os dicionários na lista têm essa chave e se ela está escrita corretamente;
A variável restaurantes pode não estar sendo passada corretamente para a função listarrestaurantes(). Checa se restaurantes está definido no escopo global ou se está sendo passado corretamente como um parâmetro para a função.
Caso possa compartilhar todo o código da sua solução, poderia analisar mais detalhadamente.
.
.
.
Se esta resposta te ajudou, favor marcar como solucionado ✓