Boa noite, Georg!
Uma das finalidades do programa é não incluir ingredientes repetidos no array, por isso, se for para o break direto, a variável existe ainda conterá o valor de "false", fazendo com que o ingrediente já existente entre no array.
Dessa forma, o ingrediente continuará como não existindo fazendo com que ele entre no array.
var existe = false; //Ingrediente ainda não existente
for( var posicao = 0; posicao < ingredientes.length; posicao++) {
if( ingredientes[posicao] == ingrediente) { //Identificado que o ingrediente já existe no array
existe = true; //O ingrediente existente no array, por isso não entrará no array.
break; // Sai do laço "for()..."