I'm not sure what it has to do with the issue at hand, but it is largely because it is an interpreted language. There is an extra layer of abstraction between the program and the bare metal because it runs in a jvm. So, you have hardware, you have an OS, then you have a JVM, then you have the java program. It's a trade off between portability and some speed. You can take the exact same java program an whether you are on linux, or windows, or OSX or whatever, and as long as you have written your code correctly, it will run.
Even if it’s written correctly, that whole working thing is in something of a relative sense. No, I’m totally not a jaded Minecraft player...