Oi isnard santos neto eu identifiquei um problema no seu algoritmo, o código do jeito que está mesmo já tendo acertado ou errado o número vai continuar verificando as outras posições do array e imprimindo por exemplo vc acertou, vc errou, vc errou.
Primeiro você deve "percorrer" todas as posições do array, depois você imprime se achou ou não.
A lógica ficaria assim:
<meta charset="UTF-8">
<input/>
<button> compare com meu segredo </button>
<script>
var input = document.querySelector("input");
var button = document.querySelector("button");
var segredos = [5,7,10,2];
input.focus();
function verifica (){
var achou=false;
for(var posicao = 0; posicao <4; posicao++) {
if ( input.value == segredos[posicao]){
var achou=true;
alert ("vc acertou");
break;
}
}
if(!achou){
alert ("vc não acertou");
}
input.value = "";
input.focus();
}
button.onclick = verifica ;
</script>
Perçeba que utilizei uma variável booleana para indicar se achei ou não o número ela inicializa como não achei e caso eu encontre esse número no meu array de segredos eu atribuo que achei(true) e já mostro o alert e quebro a execução com o break, ao final do loop for se não encontrei aí sim imprimo o alert vc não acertou.
Espero ter ajudado e bons estudos.