In addition to the reasons you mentioned it's also possible their are other demographic differences among languages in terms of age, experience etc. (I suspect though can't prove that the average C programmer is older than say the average PHP programmer).
"better" is subjective. While there are good things about the Java/JSP stack, its templating language is IMO cumbersome and unsafe, and its test-edit cycle can be quite long.
There are also MVC frameworks for PHP. The most popular, though, are those for scripting languages like Ruby and Python, namely Rails and Django.
What you shouldn't be doing is interleaving data access, business logic, and presentation all in one file, which is what straight PHP and JSP usually consist of. This is called "spaghetti code" and it's been widely regarded as a really terrible practice for around 10 years.
You can do client-side apps in Javascript that fetch JSON or XML from the server, but you want to be using a framework with some structure to serve the data, still not just straight PHP or JSP.
"spaghetti code" actually has a much broader definition than that particular kind of lack of structure (though I agree that that example might be viewed as a fairly modern example of "spaghetti code") and has been considered a terrible practice for much longer than PHP, JSP, or even the web itself has existed. [1]
I still agree that PHP is probably the fastest way to get a couple dynamic HTML pages that include server data. The limitations of PHP as a template language quickly reveal themselves as projects grow.
That said, I don't think the findings for C was shocking either.
You're not going to be writing kernel-modules in Clojure. It's going to be some sort of C. And the chances of it involving hardware (performant code or not) is significantly higher than other non-systems languages.