Bitcoin's smart contracts are pretty much limited to multisig transactions, time-locked transactions, and transactions that unlock when given the input text that hashes to a certain value. The only state that Bitcoin transactions can "read" on the blockchain is whether their inputs are spent already (and they read that by failing if their inputs are already spent). Compared to Ethereum, Bitcoin only supports a couple special cases. Ethereum allows arbitrary smart contracts. With Ethereum, you could almost trivially reimplement Namecoin without needing a separately-mined blockchain. You could make a decentralized prediction market (Augur and Gnosis are two projects working on this) out of smart contracts on the Ethereum chain that include systems to reward people who supply correct real-world data to the on-chain Ethereum smart contracts. Both of those use-cases are far beyond the special cases that Bitcoin supports.
so what can Bitcoin do that Ethereum can't? I feel it must be able to do something better to justify a higher market cap than ethereum, when Ethereum adds more features faster and the marketcap reacts, past flaws would not matter too much
Bitcoin's conservative rate of change is one of its big features, plus the network effects of its existing userbase. Bitcoin users are less likely to lose money because of an issue in Bitcoin or because of reliance on a fragile contract encouraged by the Bitcoin software. The Bitcoin network is less likely to have its transaction history rolled back, or have significant changes made to its money supply which could strongly affect the value of present bitcoins.
both prices are built from speculation so both are extremely high risk, bitcoin's conservative rate of change caused the dominance from 80% to around %50. New features, developers and institutional support will be more important in the long run, maybe not to an bitcoin maximalist but for the normal investor
bitcoin digital scarcity is overrated, ethereum has the record for most transactions in a day and surpassed bitcoin in volume, better signs of potential than an arbitrary cap limit
Ethereum has a faster confirmation time, if it shows to become a better developer platform, a lot of money will be thrown at the scalability problems, for example a solution from Microsoft https://azure.microsoft.com/en-us/blog/announcing-microsoft-...
A faster block time isn't without its own issues. I've been running the Ethereum client for most hours of the day and I can't remember the last time I've actually had its blockchain caught up and in sync.
Smart contracts, escrow and dispute mediation ARE already possible with Bitcoin with CHECKMULTISIGVERIFY.
And there haven't been has many issues in Bitcoin core than in Ethereum.