Oi Thiago tudo bem? Vou explicar cada linha se tiver dúvidas ou quiser saber mais a respeito pode perguntar.
for(var posicao = 0; posicao < segredos.length; posicao++) {
Nessa linha é um laço for, ele começa definindo a variável posição como 0 no primeiro argumento do laço for. Cada argumento do laço for é seperado por ponto-vírgula.
No segundo argumento temos a condição para continuar no laço for que é se posição for menor que a quantidade de itens do vetor segredos.
No terceiro argumento o programa é informado que a cada ciclo de for ele tem que adicionar mais 1 para a variável posicao.
if(input.value == segredos[posicao]) {
Nessa linha é uma condição if (se), no parenteses é dito se o valor do input for igual ao item posicao do vetor segredos faça o seguinte.
Repare que a cada ciclo do for a variável posição é somada mais 1, então vai percorrendo cada item do vetor segredos. Ou seja segredos[0], segredos[1], e por aí vai até acabar os itens do vetor segredos. Repare que isso é feito a cada ciclo do laço for.
alert("Você ACERTOU!");
Essa linha informa ao usuário que ele acertou
achou = true;
Aqui define a variável achou como true, ou seja verdadeiro.
break;
E aqui esse comando break sai do laço for. Então mesmo que tenha um item duplicado ele já vai ter saído do laço e não vai aparecer o aviso que você acertou de forma duplicada.
Espero que tenha ajudado!!!