Seriously, they're miles behind. It doesn't even really support Kubernetes, you have to have long running 'runner' servers ala Jenkins and you need to have all your build tools installed on those. It's miserable, fragile and I've dearly, dearly missed gitlab CI the last few times I've had to go anywhere near actions.
It’s probably because Actions is a fork of Azure Pipelines, which was originally designed to coordinate runners on Windows (where containers aren’t nearly as flexible or compatible as they are on Linux). Microsoft came up with some fancy internal magic to have hot pools of ephemeral VMs ready to assign in seconds, which nobody outside can really replicate (I don’t think), and then everyone sits in sadness while they try to debug why their tests run fine on “runner-1” but not on “runner-2”.