Jenkins is fine, if you commit to maintaining it, but thats a non trivial task.
THe joy and pain of the gitlab runner is that the job is tied directly to the git repo its attached to. This means that unlike jenkins, the setup is versioned, meaning disaster recovery is much more simple (spin up new runner, attach to project. Done.)
You do then sacrifice multi-project pipelines, but even in very large companies, I've only missed that feature once. It also in no way makes up for having to look after 60+ jenkins masters. (dont ask)
Yes, you gitlab gives you less control over environment, but I would put forward that this is only an advantage when running on windows.