In theory, both are Turing complete, so you could build anything from one on the other given enough time and willpower.
However, they are different and specifically the transaction limits will require programs on Solana to split computationally expensive tasks into multiple steps. This makes sense from a logical standpoint. If a single transaction on Ethereum takes 10 seconds to compute a result, you can't expect it to run in a single transaction on a system that runs blocks at sub-second intervals.
A great example is making something like the growth-16 verifier from Tornado work on Solana, you end up having to split the one interaction into a couple hundred.
There are some interesting difference though, namely in how data is owned. On Ethereum a program owns mappings, on Solana an account is owned by a program. But these differences don't prevent the ability to write a particular type of program.