There aren't many reasons not to use free solutions. As someone else mentioned, community support is different than vendor support, but I would argue that community support can be better.
I have been building Web sites using free technologies for nearly a decade, and I've never run into a problem that couldn't be solved using open source solutions.
Colleges and universities rely on open source technologies like PHP and MySQL. NASA recently switched from Oracle to MySQL. Facebook, one of the Internet's most popular sites, is built in PHP. These technologies, in my opinion, are fine for mission-critical systems.
That being said:
* While PHP and MySQL are stable platforms, it widely depends on the applications created in this software. You want to make sure that the software you use for your mission-critical applications is stable. There's a big difference between scripts that were created on open source software by a group of skilled programmers and something created as an 8th grade final project.
* Open Source technologies are backed by vendors and major businesses that depend on these technologies to conduct business, so it's not like the projects are being run by a bunch of people in their spare time. Everyone from your 14-year-old neighbor to computer science professors at Berkeley contribute to the open source community as a whole. While some of these contributions are great and others aren't, a lot of groundbreaking ideas are a result of people from different industries collaborating on projects.
* Mostly everything else on the Internet is "open source." You don't need to buy HTML. You don't need to buy a Web browser. You don't need to buy CSS. You don't need to buy JavaScript. Saying that you shouldn't use open source technologies for mission-critical systems is like saying you should use IE instead of Firefox for mission-critical browsing. And I think we all know how asinine that sounds....