People don't love XMPP for a lot of reasons. Some of those reasons apply to IoT. Some reasons, like having to maintain state, are IoT specific.
Besides that, bandwidth and code complexity is a very real concern. MQTT, a lightweight message passing protocol, has become the de facto default.