Пифагорова тройка должна быть упорядочена, то есть x < y < z.
Из-за того, что это не учтено в программе, вы всегда находите чётное количество троек, для каждой (x, y, z) вы находите ещё и (y, x, z). Поэтому count между проверками всегда увеличивается на чётное число. Соответственно, значение count всегда чётно и, если вы задаёте нечётное n, то сравнение никогда не сработает. Для некоторых чётных n сравнение тоже никогда не выполнится, поскольку для одного z может быть несколько троек и count увеличится не на 2, а на 4, 6, 8...
let count = 0;
for (let z = 3; count < n; z += 1) {
for (let x = 1; x < z - 1; x += 1) {
for (let y = x + 1; y < z; y += 1) {
if (x * x + y * y === z * z) {
count += 1;
console.log(`${count}: ${x}² + ${y}² = ${z}²`);
}
}
}
}