Olá Gabriel! Aqui a variável existe pode receber dois valores, true e false. Quando o for percorrer o array em todas as suas posições ele vai procurar por um ingrediente com o mesmo nome do novo ingrediente que você inseriu no programa. Se ele encontrar ele atribui o valor true à variável existe e sai do for através do break.
Agora olhe o próximo if. Ele verifica o valor da variável existe. Se ele for true, quer dizer que o ingrediente já existe, então, ele não executa a instrução dentro do if que é justamente colocar esse ingrediente dentro do array.
Se a variável existe possuir o valor false quer dizer que o ingrediente não foi encontrado no array, então ele é adicionado e o contador é incrementado.
Entendeu?