Well before EJB3, which isn't final yet. Entity Beans did not map well to relational databases. The different types of relationships that you can have in a database did not match up well. ORM tools also provide better integration with specific database bases, whereas Entity Beans were abstracted out too far to greatly enhance their speed with RDBMS specific tuning capabilities.

ORM tools also tend to be easier to work with than the complexities of EJB Entity Beans.

Now, with that said, I think in EJB3 you will find out that there won't be a difference. Hopefully.

With EJB 2.x entity beans, you are forced to implement certain interfaces and the EJB framework is quite pervasive upon your objects. You can't have "clean" objects and this somewhat limits your design choices when designing your objects. Also, because of this, its quite hard to test your objets outside of their container.

With Hibernate you do not have this problem as there are no specific interfaces you must implement and you do not have to extend any Hibernate specific classes. You can therefor have a "cleaner" design to your objects and can test them a lot easier as they can be tested both inside and outside their container.