Olá Leandro, na realidade ele utiliza a função for nome in nomes, ele está criando essa variável nome que vai iterar dentro dos "componentes" da lista nomes. Ele poderia ter usado i, j, x, z.
Lembrando que no laço for é definido por: for elemento in conjunto: e que esse elemento é "responsável por se atribuir a cada um dos elementos contidos dentro do conjunto".
Ou seja, ele cria a variável que não precisa ter valor pq ela vai pegar os valores que estão no conjunto.
Outro exemplo: for i in range (0,10,1). Ele vai criar o i que vai iterar de 0 até 9 pulando de 1 em 1. **Então dentro do próprio for vai atribuir os valores. **