Isn't this rather the same question as "why should one need DI in any framework?" The reasons why an application built on vert.x might use DI are exactly the same as reasons why an application built on another technology might. Indeed, in some ways you're kind of already doing DI by defining event bus listeners (which you could easily swap out for other implementations, just listening on the same eb addresses).
There's no fundamental conceptual difference by defining different implementors of an interface which can be swapped in/out as desired a la DI framework (Guice/Spring) and having your application wire in the ones it wishes to use, and doing something similar for event bus listeners. In both cases the caller isn't really aware of what code is going to handle its requests, but it's a combination of the framework and the wiring which does that.
However, to answer the question I think you're asking, you might have some cases where you have logical services not communicating via the event bus, but you might still want the capability to wire those together yourself. Not every service-service interaction needs to be completely decoupled via the event bus, but it still makes sense to have a logical decoupling between those services, and that's where use of DI comes into play.