I noticed in Cantonese there are two ways to say "thank you" based on the situation. You use "m goi" if thanking someone for a service and "do ze" when you receive a gift. Does Mandarin have similar expressions for giving thanks?
"M goi" means shouldn't. More accurately I shouldn't bother you to do this for me. I don't think people who speak Mandarin would say anything similar to this to show gratitude. You may say 真不该麻烦你 which literally only means I really shouldn't bother you (to do this for me). But it can never be used like m goo as a casually way to say thank you.
Most of time, it would just simply be 谢谢 (xiexie) or 多谢 (duo xie) in Mandarin.
Actually Cantonese use both verb interchangeable, there is no special preference using any of those.
You can think of "m goi" carry extra meaning of sort of polite custom of "oh, you shouldn't spend money to buy me this presents, well, I will take it anyway.", "sorry for bother".
But in mandarin, you must use them explicitly :
When people buying you a meal, a presents, thanks for all your fish, anything that about spending money : "太破费了，谢谢".
for services, a meals，invitation,etc “麻烦你了， 谢谢”