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.