That's true for the dyn case, but my suggestion is for static dispatch, which doesn't have this issue because the future's size is known at compile time.
It can also make it more difficult for Rustaceans to keep track of how various associated types relate to one another, as well as with their concrete impls.
Not so much in the associated type definitions themselves, but at use sites:
In this example, how do I know, without looking at the trait definition, that the return type of MyDB::fetch_data is actually an associated type?