The biggest IPv6 gotcha is that it is not compatible with IPv4 networks. You can't just graft IPv4's address space into IPv6's larger address space, which is a serious drawback to the protocol. The packet header is different, frame sizes are different, checksumming algorithms are different, flow control mechanisms are different, etc.
The larger frame size alone makes IPv6 more efficient, but since the Internet at large doesn't support IPv6 end-to-end, you wind up having to encapsulate IPv6 traffic into IPv4 packets anyway. The added costs in terms of efficiency and administrative overhead to make it work negates all of its advantages, and basically ensures that the world will never adopt IPv6 until it absolutely has to.
Meanwhile, we keep inventing new ways to squeeze more and more head room out of IPv4's "limited" address space. Virtually everybody is behind a NAT gateway now. ISPs are using ever-more sophisticated VLANs and address hopping techniques to move available address pools to wherever they're needed on the fly. All of this keeps extending IPv4 beyond its design constraints and will likely continue to do so for the foreseeable future.
The objective answer to why lots of users cannot get IPv6 to their home and/or office is lack of competition among ISPs. For hosting servers there are enough competing hosting providers that everybody who wants it can get IPv6. But it is much harder to move a home or an office full of users to another geographical area than to move a server. Thus there is less competition, because you may only have a handful of ISPs to choose from. – kasperd – 2016-03-15T18:12:37.660
Because most of the devices on the internet do not support IPv6 – Ramhound – 2014-06-12T18:58:07.797
Because of the enormous cost and man-hours that would be required to switch to IPv6 wholesale? – joeqwerty – 2014-06-12T19:16:02.813
1IPv6 has been around not for "several years", but closer to several decades. The initial RFC was published in 1998. – Andon M. Coleman – 2014-06-13T01:48:13.223