Earlier quoted context omitted.
It's sad to see the "Bitcoin doesn't do smart contracts" line repeated so faithfully - even implicitly as in your question. It's rubbish. Bitcoin supports smart contracts, and has done so since launched in 2009. Even the simplest Alice-pays-Bob transaction is actually running a smart contract written in Script, a Forth-like language custom built for Bitcoin. Bitcoin also supports metacoin protocols that create tradea…
The difference is that Bitcoin supports a limited number of smart contract types (due to limitations in its scripting language.) To create new types, it requires changes to the Bitcoin scripting language, protocol, and runtime, followed by a coordinated soft fork. This is a pretty heavyweight process. Ethereum is effectively a generalized distributed computer -- so new types of contracts can be written, tested, and i…
https://en.bitcoin.it/wiki/Script
Opcodes and values can be combined to yield a vast array of possible contracts, just like any programming language.
Templates are not used, except to activate the full language capabilities (i.e., P2SH).
Ethereum is effectively a generalized distributed computer -- so new types of contracts can be written, tested, and iterated on readily, without requiring a change to Ethereum itself.
Bitcoin is not a generalized distributed computer, but it does allow new types of contracts to be written, tested, and iterated on readily, without requiring a change to Bitcoin itself.
I really don't think that's true. I'd wager that the majority of the public that is aware of Bitcoin has no idea what Ethereum is.
Nevertheless, Ethereum - through the Ethereum Foundation and is sizable war chest, has a far more concerted marketing effort.