Usually a mix of poor design choices and hostile design.
Neither of these directly correlate to the quality of the code, how quickly it was created, how many bugs it has, etc.
If everyone working in tech (or any sort of programming related project in general) was an expert level programmer with decades of experience, neither of these things would be noticeably better. They'd still create software that's miserable to use because of bad design, and we'd still have companies trying to scam the users by making basic functionality hard to use (see cookie notices, unsubscribe processes, etc).