For example coming from Trust wallet and importing to Metamask you will get a new address, do these crypto wallets work differently? What is the trick behind this?
Trust wallet is a multi-coin wallet while Metamask is mainly for ethereum and similar chains (which you have to add manually). But what you described is a bit weird and not supposed to happen because both wallets use the same derivation path to derive eth addresses which is "m/84'/0'/0'/0".
If you export the seed from one Trust wallet and import it into Metamask, or vice-versa, you are supposed to get the same address.
I just tested it and can confirm that I got the same address on both wallets.