No siempre ha sido en Java.
Atención a un extracto de Wikipedia:
Desde 2003, el examen AP de Ciencias de la Computación ha evaluado a los estudiantes en su conocimiento de la informática a través de Java. Antes de 1999, el examen AP evaluaba los conocimientos de Pascal. De 1999 a 2003, el examen evaluaba los conocimientos de C++. El examen AP de Ciencias de la Computación se ofreció por primera vez en 1984.
No conozco las razones exactas del College Board para elegir Java, pero me parece que cambian periódicamente el lenguaje utilizado en el examen para reflejar el lenguaje popular del momento. Tal vez algún día cambien a Python, ya que su popularidad como lenguaje de instrucción está creciendo rápidamente. Ciertamente tiene una serie de características que lo harían una buena opción para los propósitos del examen (sintaxis simple, estructuras de control estándar, una variedad de tipos de datos, POO, manejo de errores, etc.).
Esto es sólo una especulación, pero una cosa que podría estar frenando la adopción de Python es la tipificación dinámica de Python. Todos los lenguajes utilizados hasta ahora para AP CS han sido tipados estáticamente, incluso cuando muchas universidades han estado enseñando cursos introductorios en lenguajes tipados dinámicamente desde hace algún tiempo (ya que usted lanzó el ejemplo del MIT, vale la pena mencionar que el MIT utilizó Scheme en su día). Una vez más, no puedo decir por qué, pero es posible que los desarrolladores del examen sientan que la primera introducción de un estudiante a la programación debe ser enseñada usando un lenguaje estáticamente tipado. Tal vez su posición cambie a medida que Python se adopte más ampliamente.