¿Por qué la mayoría de las universidades enseñan Python como idioma principal para enseñar computación científica?

No sé que la mayoría sí. Sin embargo, la mayoría de las universidades enseñan primero un idioma de enseñanza.

Sin embargo, MIT siempre enseñó LISP primero, en el pasado. A otras universidades no les gustó la falta de una estructura de bloques similar a Algol. FSU, por ejemplo, enseñó a Pascal, que fue inventado como un lenguaje de enseñanza.

MIT cambió a Python hace algún tiempo, y supongo que muchas universidades lo siguieron. Es un lenguaje de enseñanza razonable. El espacio en blanco semántico lleva a las personas a buenos hábitos. Está razonablemente estructurado en bloques. Es lo suficientemente similar a LISP para satisfacer al MIT y también presentarle a un nuevo estudiante algunos conceptos importantes. Es bastante bueno para el tipo de trabajo de línea de comandos que tiende a ser en primera clase. También es algo útil, y descifró la hegemonía de FORTRAN en computación científica. Pascal se ha ido por el camino, excepto en Delphi.

Entonces no es una mala elección. Ruby también estaría bien, pero Python llegó primero.

Realmente espero que no enseñen PHP primero. No solo es limitado, sino que enseña malos hábitos.

Bien, veamos.

Es un lenguaje orientado a objetos, por lo que proporciona toda la funcionalidad y el poder que eso implica.
Es una parte nativa de casi cualquier plataforma Unix o Linux. Y se puede instalar fácilmente en Windows sin costo.
Tiene un diseño inteligente y los elementos se pueden compartir fácilmente (lo que lo hace ideal como plataforma en un entorno de aprendizaje).
Es interpretativo, por lo que es fácil usar prueba y error para lograr los resultados deseados rápidamente.
También es fácil de depurar y experimentar.
Es un lenguaje rico en bibliotecas y complementos.
Hay una serie de shells que pueden emplearse como ipython, bpython, eclipse, PyScripter, así como varios sandboxes en línea. La mayoría son gratis.
Es un lenguaje fácil de aprender y tiene una sobrecarga bastante baja.
Tiene casi toda la funcionalidad de prácticamente cualquier otro idioma (la única excepción que viene a la mente es la falta de una estructura de control de interruptor).
La comunidad python tiene un cierto chi, que incluye una ética útil y una donde se fomenta el intercambio de información.
Su único inconveniente es la falta de velocidad (debido principalmente a que es un lenguaje interpretativo). Sin embargo, en aplicaciones de uso intensivo de datos, esto se puede mitigar fácilmente al permitir que la base de datos haga el trabajo pesado con respecto a la recuperación y procesamiento de datos grandes y complicados.
¡Incluso está disponible en un iPad!

Para agregar a los excelentes puntos ya enumerados, otras razones convincentes para usar Python son 1. Entorno de documentación y codificación basado en el navegador IPython Notebook 2. Excelente soporte de trazado y visualización de datos ofrecido por Matplotlib, Mayavi, plotly, Bokeh y otros 3. La distancia y diferentes direcciones puede llevarlo a una amplia variedad de áreas de aplicación. Computación científica, ciencia de datos, aplicaciones web, aplicaciones GUI.

Tiene mayores oportunidades de comunidad y biblioteca que no sean Ruby o PHP. Además, PHP es un tipo diferente de lenguaje que Ruby y Python. No es aplicable a otros problemas distintos al desarrollo web.

Mira a Numpy y Scipy, obtendrás una respuesta por qué. Y esos son solo los bloques de construcción.