Olá Felipe,
É nessário retirar o seguinte if de dentro do for:
if (achou == false) {
ingredientes.push(ingrediente);
contador++;
}
Porque essa validação deve ser feita somente quando o ingrediente digitado tiver sido verificado em todas as posições do array ingredientes, a fim de saber de esse ingrediente já foi inserido antes.
O programa sempre exibe o valor do ingrediente 1 porque o contador nunca é incrementado por estar dentro do for, uma vez que na primeira execução ingredientes.length tem o valor de 0 e por contado disso o for não é executado e consequentemente o contador não é incrementado. Logo, o contador terá sempre o valor de 1