RabbitMQ is licensed under the Mozilla Public License. Because it's such a core part of a system, it's better that it's open source to avoid expensive licensing or consulting fees.
Erlang is a fast concurrent language designed for non-stop, real time, message passing applications, which makes it a great language for a message queue.
Although RabbitMQ is open source, it is still backed by Pivotal Software, giving it a stronger financial and developer backing. It also means there's a company to go to if you need help scaling in the future.
Messages in RabbitMQ are sent to a central broker before being passed to clients. This makes RabbitMQ a better choice if you are in need of more complicated methods of message passing such as routing and load balancing.
ZeroMQ is very fast due to its simplicity, but as a result of this, doing anything harder than passing messages between 2 peers will require a lot more work from the user.