1) Programmer availability and economics. Ton of RoR/PHP/Java and hopefully soon Go programmers, but good C++ programmers - good luck finding and retaining one.
2) Security - However competent YOU are - it just isn't possible to write a complex web facing system that is also secure. I was part of a failed project to write an IdM system in C++. It was a huge pain when we hired a external org to do Penetration Testing. After they were done we were left with lot of damage. Part of this is language, part is a lack of lot of great framework/best practices/expertise.
3) You reinvent the wheel a lot. Want to talk to LDAP - write your own load balancing and failover aware C++ classes or maintain somebody's unsupported OSS one. Equally headachy. Or pay for RogueWave - a ton of money per platform plus annual support contracts.
4) Cross Platform Pain - Enough said. Take the myriad of compilers, linkers, versioned libraries and try to ship a product that supports plugin based extendibility. Tough job convincing the customers to use the same compiler/linker/libraries to build their plugins.
5) Performance monitoring, debugging and profiling tools. See how well those compare against Java's JMX, HPROF, Heap dumps with OQL, MAT, YourKit etc. Just no match unless you are extremely competent and can manage debugging complex production systems without these tools.
6) Lack of something like a widely used Application Server ala Weblogic, JBoss. The value these provide in terms of ready clustering, db access, thread pooling - that's just not easily doable in C++. Add the lack of various 3rd party frameworks (ORM, Rules engines etc.) and you are ready to give up on C++.
Now I am sure somebody will go clever and come up with solutions for each of the above but the point is when you pull all of them together - it's not hard to realize it won't be worth it.