I don't think Koa and Express have to compete each other, they differ a lot in style, but they do have similarities too, Express is loaded up with middlewares, routing and a lot of goodies, but Koa is basically the bare bones, it let's you decide what middlewares to use, so its sort of easier to maintain, since you have less moving parts, when compared to Express and yeah Koa is generator (Generator Fn) heavy, so you deal less with callbacks when compared to Express, but we could solve that by using Promises etc.
Like mentioned in their docs - "If you'd like to be closer to node.js and traditional node.js-style coding, you probably want to stick to Connect/Express or similar frameworks. If you want to get rid of callbacks, use Koa.", it's just a matter of choice, IMO Express has better support so.
Anyway, they both get things done.