Your comment doesn't address the point of the article. The author isn't talking about Ethereum itself, which they acknowledge up front can comfortably be considered decentralized.
The point is smart contracts. They are code, and they have to get updated if there are bugs. How do they get updated? Well, in the simple (and common) case somebody holds the private key and updates it. That's centralization, obviously.
You can get arbitrarily complex with how smart contracts are updated. You can have multisig, where 2:3 have to vote to update, or you can have actual voting, or you can even do voting by stakeholder in the contract.
But whatever you choose, it's fully a function of the smart contract itself what level of decentralization it achieves, and not at all about Ethereum.
The point is smart contracts. They are code, and they have to get updated if there are bugs. How do they get updated? Well, in the simple (and common) case somebody holds the private key and updates it. That's centralization, obviously.
You can get arbitrarily complex with how smart contracts are updated. You can have multisig, where 2:3 have to vote to update, or you can have actual voting, or you can even do voting by stakeholder in the contract.
But whatever you choose, it's fully a function of the smart contract itself what level of decentralization it achieves, and not at all about Ethereum.