Потому что вы видимо плохо представляете как устроен цикл for. Он будет отрабатывать пока
--n === true. В случае
--n, там сразу окажется 0, т.е.
false и цикл остановится, таким образом нуля вы не увидите никогда. В случае с
n--, там будет пока ещё единица и цикл продолжится, а на момент вызова лога n уже станет нулём.
// последняя итерация цикла
for (n = 10; --n;) { // n === 0
console.log(n); // сюда не зайдёт ибо 0 == false
}
for (n = 10; n--;) { // n === 1
console.log(n); // а вот тут уже n === 0
}