You don't have to go to extremes, like adam, who suggests that you should make your games more like databases and use declarative programming.
You could combine the approaches, for example, not having an entity manager but specific lists for various types of objects. Component based design is really useful when you end up with a monolithic class that defies the single responsibility principle.
Generally, in simpler games, or games where performance is needed, you might not want to use entity systems (but the performance greatly depends on the implementation).
As for why inheritance is used in game development, well, it was already there and natively supported, everyone else is using it, and it's simply intuitive. And seriously, if you plan ahead and use at least some component based design elements, you'll be fine with a classic implementation of a game.