KDE is nice and all and certainly better than GNOME from a UX perspective (at least according to my preferences) but it always suffered from Qt:
1. Initially Qt1's license made a lot of developers to shun it (if that was warranted or not is a matter of opinion, but that is what happened).
2. Being written in C++ makes it very hard to not break ABI and Qt broke it several times - either because of itself or because of C++ libraries.
3. C++ also makes it harder to interface with other languages, meaning that for most languages interfaces either do not exist or they do but are of inferior quality. In comparison Gtk+'s gobject was designed to be easy to interface with.
4. Even if you buy into C++, for a long time you had to wrap your build system around Qt with moc and all.
5. Qt was always controlled by a 3rd party company whose interests did not align with KDE's: Trolltech/TQTC wants to provide middleware to developers for developing desktop applications, KDE uses it to provide a platform API. These two overlap a bit, but they also are incompatible in other areas (such as API/ABI stability).
Some of these (e.g. license, moc) are not valid any more, but others (TQTC goals) are and even without them, GNOME has already a lot of inertia.
> Cinnamon, MATE, Xfce.
These desktop environments rely on technology developed primarily for GNOME by GNOME and/or RedHat (and to a lesser extent Canonical) developers, like Gtk+, Clutter, etc.
The original post was about why everyone uses GNOME if other environments are available: if there is anything that my answer implies is that if you rely on GNOME tech and/or tech made primarily with GNOME in mind (even under the disguise of a neutral tech) then GNOME will be where things will work better and first show up.
The only neutral tech that there is on desktop is X11/Xorg and of course the GNOME people want to tear that down and replace it with their own tech.