Ethereum did a much better job building alliances and attracting developers while BitShares focused on optimized technology. Theres a bit of a Windows/MacOS parallel there or perhaps Android/iOS.
Ethereum is designed to be more general purpose, allowing anyone to add to it without permission of the developers.
BitShares is optimized for efficiency, especially in the domain of real time markets. You need a hard fork to add new features, but that has been simplified by the built-in governance model so that it won't hold back any idea the community wants to support.
As Ethereum discovered, it's strength is it's weakness: ability for anyone to quickly add features means there can be embarrassing bugs. BitShares can still have bugs, but it forces a more conservative upgrade policy.
Ethereum is preferable for a rapid prototyping environment, but BitShares can more efficiently implement any smart contract type that proves worth a few month's worth of extra effort.