Superman quedó por fuera porque se inicializó la variable "i" en 1. Y cómo el primer índice de un array es "0", entonces ignora el primer elemento y salta directamente al siguiente, que es el que pertenece al segundo índice, que es el "1"
Debería quedarnos así:
for( var i = 0; i < heroes.length; i++) {
alert(heroes[i]);
}