Same. Just looking at my last 8k run from the other day I was in Zone 5 for 22 minutes and Zone 4 for 16. I run very infrequently, but I find it very difficult to just do steady state Zone 2 runs, it feels like going for a walk. I prefer to pick up the tempo and just really focus on my breathing/stride.
Yeah, I'm not totally sure how to fix that tbh and always have assumed it's just off. Open to suggestions though!
I use WorkOutDoors (with a Polar H10), and I've attempted the whole "do hill sprints" thing to calculate it, but I'm generally not far off from 220-age. When I put my resting heart rate into WorkOutDoors the zones get thrown even further off, so I don't even bother with that data point. I've kinda just shrugged it off and assume what is reading as Zone 5 is more like a high Zone 4.
I've considered doing a lactate threshold test, but honestly I just go running once a week to supplement my muay thai training, so it's not totally worth it to me.
Threshold test might help you dial it in, and it doesn't have to be in a lab (though that would be most accurate) -- you could do a workout effort to estimate your max sustainable heart rate for an hour, then calculate zones based on that threshold HR (i.e. my Garmin calculates based on % LTHR, where zone2 ends up being 83-89% of LTHR).
It's also not an exact science - it's a spectrum and shifts day to day depending on lots of conditions!