We have also found that we are spending almost 25% more in Azure for similar compute capabilities as we've had to launch more servers to meet expected baseline performance (or pricier systems).
The lack of proper AZ's in certain locations is also a huge bummer, on top of that, we've found that in certain regions you will have certain instance types that are available in one AZ but not the other. So you end up having to find somewhat equivalents and rewrite infrastructure as code to deal with that mess.
Last but not least is the fact that GCP and Azure both don't have great support for IPv6. AWS may have been late to the game, but it's easy to deploy, and it just works. Whereas in GCP you have to be in certain regions, and in Azure I still am not sure what they were smoking with giving such a tiny public IPv6 prefix: https://learn.microsoft.com/en-us/azure/virtual-network/ip-s...