There are a lot of reasons why, probably enough to write a blog post about. To summarize I would say that this is mainly a byproduct of being close to the metal, and our use of lock free code on the fast path. Also our system is relatively simple when compared to Storm which I also believe lends to less work and improved performance.
One of the cofounders here. We're in C++ - no 15-20% cost on JVM. Plus we've made a lot of optimizations on our communication and networking including libevent.