A função Upper converteu tanto a palavra secreta quanto o chute digitado, em maiúsculo, deixando ambos iguais, por isso retorna verdadeiro.
O código do exemplo acaba repetindo conversões, creio que a intenção do Nico foi mostrar a funcionalidade dos recursos.
O código pode ficar mais enxuto. Se a palavra banana já esta toda em minúsculo, não preciso mexer nela.
Apenas no dado de entrada (chute) é que preciso tratar, no caso eliminando espaços e deixando sempre convertido em minúsculo.
:
palavra_secreta = 'banana'
chute = str(input('Qual a letra: ')).lower().strip() # na entrada do dado já deixo a condição de deixar sempre em minúsculo e eliminar os espaços
index = 0
for letra in palavra_secreta:
if chute == letra:
print('Encontrei a letra {} na posição {}'.format(letra, index))
index += 1
print('jogando ...')