Las páginas JSP se traducen al código fuente de Java, luego se compilan en archivos de clase (que contienen el código de Java Byte) para su futura ejecución. Después de eso, en realidad son JIT (Just In Time) compilados por JVM cuando se necesitan para la ejecución (por lo que son bastante rápidos).
Creo que hay un proceso similar para las aplicaciones .NET, ya que se compilan en ensamblados .NET. Esto es algo así como los archivos de clase de Java, excepto que son IL (Lenguaje Intermedio) para ejecutarse en el CLR. En tiempo de ejecución, IL también se traduce en instrucciones de máquina nativas para su ejecución.
Los mecanismos reales de compilación/tiempo de ejecución (desde un nivel alto) son probablemente sorprendentemente similares.
EDITAR
Éstos son algunos detalles relacionados con ASP.NET: http://msdn.microsoft.com/en-us/library/ms366723.aspx
Además, con aplicaciones web basadas en Java, los recipientes que las dirigen se puede configurar para pre-compilar JSP cuando se despliega la aplicación. Luego, la JVM carga los archivos de clase en la memoria y maneja la compilación JIT/almacenamiento en caché desde ese punto en adelante.
Relacionados: [¿Qué diferencia hay entre JSF/Servlet/JSP?] (Http://stackoverflow.com/questions/2095397/what-is-the-difference-between-jsf-servlet-and-jsp) y [What's la alternativa de Java a ASP/PHP?] (http://stackoverflow.com/questions/2556553/what-is-the-main-stream-java-alternative-to-asp-net-php) – BalusC