mtishetsky said it: Scalability, modeling, development tools, and better OO design.
ASP isn't the only big one mind you, Java (JSP, Servlets, etc..) powers some of the largest web businesses out there as well.
For smaller organizations, running Windows is simply cost prohibitive in terms of licensing and the purchase of software alone. Java is wonderful, but still a bit stressful on older architecture so hardware costs may be prohibitive to small startups.
Professional development on either of these platforms can also be cost-prohibitive. For any mid-to-large company hardware prices aren't an issue.
Not to say that PHP can't scale, it can, it just requires a well-designed plan and a fair amount of work. Maintenance, re-factoring, enhancements, etc.. are still more difficult in PHP (Perl too) than on a JSP or ASP platform.
IME, PHP became popular because it so closely resembles C. It's very easy for a beginner to get his/her feet wet. The (inevitable IMO given the popularity) problem (as previously stated) is that there are so many horribly designed scripts out there
that PHP is often looked down upon by people who live in ASP/JSP world.
Personally, I wouldn't switch to a Windows server platform if I were given unlimited free licensing. I'll take server-side Java over ASP any day of the week
PHP can take you pretty far though if your designs are solid with patterns chose properly, code is clean, well documented, and the like..
Another issue -- a lot of scripting languages will release major updates that may break programs that ran perfectly well before the update. Startups that intend to be working with a few million lines of code will likely avoid such situations at all cost.