There are unaffiliated nodes, you can run your own validator and stake independently.
This decentralizes transaction processing and arbitrary code execution.
Client upgrades and hard forks are largely centralized. This isn’t one and the same with the transaction processing nodes compared to bitcoin.
Saying centralized without context is reductive and doesn’t tell much though. I would like all aspects less centralized though.