My theory is they're bad at customer support because they spend nothing to support us. That's why AT&T, Comcast etc can support ~100 million people by phone, Amazon support a multiple of that by live chat and Google can't even reply to email.
Comcast "support" is almost not better than just having robots at the other end, never have I ever gotten a problem resolved from support, I've just had them try to upsell me relentlessly. To this day my Comcast email is somehow setup wrong and I no longer care to try to fix it.
Interestingly, Comcast has been one of the consistently better support experiences for me over the years. Usually very quick and pretty helpful, even if it is just to schedule someone to come out and look at the problem.
Their service in general has gotten kind of unreliable around here the last year or so, with a handful of widespread outages, one of which lasted almost an entire day, but the customer support has never been something I've been unhappy with.
Google support is bad because 99% of Google users are not customers, but the product.
The lack of being rooted in a customer serving business then extends to other areas where you are the actual customer, like Google Apps etc, where support exists but is often sub-par.