MySQL usually gives better preformance, but that is only because it lacks all the essentials. No referencial integrety checks, no transactions, no functional indexes, no cascading delete, no stored procedures, no database fragmentation, no UNION, no OUTER JOIN, no INTERSECT, the list is long.
The lack of all those functions makes MySQL very fast. (that is why the creators left them out).
But because MySQL lacks so many usefull functions it is also very difficult to do complex queries. Consequently, many MySQL applications are quite simple, and simple things are nearly always fast.
If ever something complex needs to be done with MySQL, people cheat by doing the complex things in PHP. (we have all seen the posts about how to store an array in MySQL)
Once you have tasted the power of a real Rdbms, you'll find that there are a million more things you can do with PostgreSQL than with MySQL.
Unfortunately there are many people who only look at one criterium: speed.
They forget about data consistency, scalability, reliability etc, and just go for the fastest solution. (which will backfire sooner or later)