I ported a lot of stuff from Jenkins and CircleCI to GitHub Actions, as well as building an iOS build/release pipeline with Actions, and honestly I don't understand this criticism.
I find Actions to have a maturity far beyond how long it has existed for, with very strong primitives that compose better than anything else I've seen.
GitLab CI always felt to me like it was a minor improvement over Travis, and that they hadn't yet realised that complex CI trends towards general compute orchestration. I found it hard to achieve complex, reliable, and fast pipelines with GitLab CI.
There have been outages, but we didn't find this to be any worse than CircleCI, and was better than our experience running a Jenkins cluster.