Why do most web hosting services support only PHP as the server-side language?

With Java, hosting is more complicated. You can't just load mod_java and go, you need Tomcat or JBoss, or some other Servlet/JSP hosting environment, and they're non-trivial to configure and maintain.

With Python, I think it's just that it's not as commonly used for web services. I use much more Python than PHP, but I don't tend to use it for web stuff, aside from the occasional Django site. (Mind you, the company I host my personal stuff with charges for Java, but offers Python for "free", the same as PHP).