Tente dessa forma:
<script>
var segredos = [2,5,7,10];
var input = document.querySelector("input");
input.focus();
function compara() {
//Variável redefinida toda vez que a função é chamada
var achou = false;
for(var posicao = 0; posicao < segredos.length; posicao++) {
if(input.value == segredos[posicao]) {
alert("Você acertou");
//Correção de atribuição de valor para a variável
achou = true;
break;
}
}
input.value = "";
input.focus();
// Alerta acionado somente quando a função é executada
if(achou == false) {
alert("Você errou");
}
}
var button = document.querySelector("button");
button.onclick = compara;
</script>
O alerta era acionado porque estava fora do corpo da função e executava junto com o carregamento do script.