И потом, дело не в "волшебном" языке Java, а в программах, написанных для него, конкретно - в компиляторе. Значит его компилятор генерирует более шустрый машинный код.
Компилятор java вообще не генерирует машинный код

Он генерирует байткод, который потом исполняется jvm. Вот последняя да, может компилировать байткод в машинный код (а может и не компилировать

) Но, в любом случае, если вы думаете, что только разработчики java осилили оптимизации, то вы глубоко ошибаетесь. Всякие тесты производительности это, в общем то, подтверждают (но ссылки на эти тесты мне лень искать

)