The main difference is in the language pairs supported by MT engines + subscription types (characters based, word based, time based). If you use some dialects or rarely used languages you need just to google which one support them and go ahead with it.
Crowdin’s engine is free of charge at all, but it works with only English as a source. Still, all popular languages are support, so this is a very fine one.
Next, for example, Google gives a certain limit for a month, when it ends, it stops translating at all.
DeepL has a free tier with 500,000 characters per month.
Microsoft Azure translator limit for the free tier is 2M characters, but maybe there’s some other limitations, dunno.
Amazon translate has year-based subscriptions only. Not flexible as on my opinion.
Google Auto ML seems to be the best one on paper, it can train your own model, can have a glossary, can be super flexible, the most flexible I would even say. But it has a bug and can add not needed spaces in translation. Like hello_hello_hello can become begroeting__begroeting__begroeting. Can’t say with what it’s related, and happen not too often but still happen sometimes.
Personal I’ve tested almost all of them and would suggestion using DeepL or Crowdin. But as almost all have some free tier, you can use them all on some test document and see the result and check how they sounds and reads for you.