That was also the initial goals of k8s - make it universal so it's adopted as a standard by everyone else to make yourself competitive against the AWS juggernaut. And it worked.
Sure each provider does things differently, but they still work with primitive Kubernetes manifests at the end of the day.
A migration from one to the other is nothing more than changing some annotations or potentially transforming the "shape" of some lists or maps.
same as like, aws extending mysql and postgres to provide RDS features -- they don't open source those pieces, so 'stock oss' DBs don't have fancy RDS features like backup + restore
with kube, platform-integrated components like network, ingress + storage 1) require custom work on each cloud, so new features won't be available on all clouds at the same time.
But also 2) that means some components, ingress specifically, have different interfaces on different clouds when they do finally get implemented.
took a while for E/AKS to catch up with G, things like ingress still vary in DX across clouds
'the same everywhere but it only works here'
(no comment on morality of this, quality of kube generally, or whether this team will do the same. docker IMO missed the chance to be a cloud host or a standard interface)