Da forma que eu fiz o código o break parece não ser necessário. Testei removendo a linha em que se encontra e o programa funcionou normalmente. Ele serve para apenas não continuar as próximas verificações?
<meta charset="UTF-8">
<h1>Receitas do Yan</h1>
<script>
var ingredientes = [];
var quantidade = parseInt(prompt("Quantos ingredientes você vai adicionar?"));
var contador = 1;
while( contador <= quantidade) {
var presente = false;
var ingrediente = prompt("Informe o ingrediente " + contador);
for(var posicao = 0; posicao < ingredientes.length; posicao++){
if(ingredientes[posicao] == ingrediente){
alert("Ingrediente "+(contador)+" já informado. Adicione outro ingrediente.");
presente = true;
//break;
}
}
if (presente == false){
ingredientes.push(ingrediente);
contador++;
}
}
document.write(ingredientes)
//console.log(ingredientes);
</script>