I haven't done much with the others, but I can't imagine there is much difference. Jenkins has a ton of plugins, but the biggest reason I would choose it over the ones you listed is so that you're not locked in to a specific provider. At work quite a few people were using gitlabCI, but recently corporate signed a deal with microsoft to use GitHub. So now everyone using gitlab ci is going to have to recreate their deployment process.
You can buy Jenkins via capex vs depend on the internet and subscribe monthly on the other?
Gitlab does have a self hosted option, though it is still a subscription.
Worth noting that you don't have to self-host your GitLab instance to self-host your CI/CD runners. You can configure gitlab.com and use your own tightly controlled infrastructure for running CI/CD.
You can self host Gitlab entirely, no subscription needed.
Agreed, though the paid plan might have more parity with whatever they were doing with Jenkins.