Olá, Marcelo, como vai?
A sua solução utilizando o laço while funciona perfeitamente para o problema proposto, pois você controlou manualmente o contador para que a repetição ocorresse cinco vezes. A principal diferença entre a sua abordagem e a resolução do professor está na forma como o Python gerencia o controle dessas repetições.
No laço for com a função range, o próprio Python se encarrega de criar uma sequência de números e percorrer cada um deles, o que simplifica o código ao eliminar a necessidade de criar uma variável de controle externa e realizar o incremento manual dela.
Para ilustrar essa diferença, imagine que você precise listar os itens de uma sacola de compras. No modelo do while, você precisaria contar quantos itens existem e retirar um por um enquanto o número atual for menor que o total. Já no modelo do for, você simplesmente diz ao programa para retirar cada item que estiver dentro da sacola.
Espero ter ajudado.
Siga firme nos seus estudos e conte com o fórum sempre que precisar.
Abraços :)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado