If I'm reading the docs right, the Stellar smart contracts are extremely different from Ethereum smart contracts - in fact, it almost feels like a stretch to call them the same name. Like "animals" vs "plants".
Ethereum smart contract are actual virtual machines. They are tiny computers that run whatever bytecode you want. You could calculate pi to a million decimal places in a smart contract, if you had the money for gas.
Stellar smart contracts, on the other hand, are simpler. A transaction can only choose from 13 operations (Buy, make offer, change trust, etc). On top of the operations, you can add some restrictions to the transaction - Stellar has support for built-in multi-sig, built-in start and end time limits, and built in transaction grouping. By combining these restrictions, grouping transactions, presigning this, and handing out that, you can make something that's smarter than a single person doing a single transaction.
As an Ethereum blockchain developer, using Stellar smart contract feels very limiting, and outside the simple cases, very convoluted.
The explicit design decision here is that most of the logic that in Ethereum would be executed in the EVM, can instead be computed off-chain, with the results encoded in the Stellar ledger. This precludes some of the loftier use-cases that have been proposed for Ethereum like DAOs and trustless prediction markets, but makes it much easier and faster to move money around.
(Put differently, Ethereum is a distributed computer, not a payment rail; Stellar is a payment rail, not a distributed computer).
If you want to implement a gambling site in a jurisdiction where that is illegal, Stellar won't help you, and Ethereum might. However if you're an existing business that is incorporated in the US, then you are probably fine with asking customers to trust you; this is what all companies currently do, under perjury of prosecution.
Another key benefit to Stellar is that if you just want a token / ICO, then this is built into the protocol; Stellar has the concept of an Asset, which you can issue with a couple of API calls. This replaces the need for implementing and testing your own ERC20, which is a major headache, particularly for existing non-crypto oriented enterprises.
There are obviously some open questions on exactly which use-cases Stellar would be useful for, but an example would be in-app purchase tokens like Kin; there's no reason to implement that as an ERC20 and incur the risk involved with the EVM when you're just moving tokens around.
The Stellar smart contracts seem to function like versions of Bitcoin Script transaction types with more features. For me this seems like a more appropriate direction for transaction abilities in comparison to Ethereum's approach, which has more capability but also massive room for implementation error.
The word "contract" is a bit misleading. On Ethereum these scripts are used for all sorts of things, including the on-chain parts of second-layer scaling solutions.
Turing completeness has a lot of costs which are not acknowledged in this post. For example they are more complicated, more can go wrong, more vulnerable to hacking.
Ethereum smart contract are actual virtual machines. They are tiny computers that run whatever bytecode you want. You could calculate pi to a million decimal places in a smart contract, if you had the money for gas.
Stellar smart contracts, on the other hand, are simpler. A transaction can only choose from 13 operations (Buy, make offer, change trust, etc). On top of the operations, you can add some restrictions to the transaction - Stellar has support for built-in multi-sig, built-in start and end time limits, and built in transaction grouping. By combining these restrictions, grouping transactions, presigning this, and handing out that, you can make something that's smarter than a single person doing a single transaction.
As an Ethereum blockchain developer, using Stellar smart contract feels very limiting, and outside the simple cases, very convoluted.