You misunderstood the phrase
Requires membership in the sysadmin fixed server role, or ownership of
the database (dbo)
"ownership of the database" means that this login owns this database.
This is not the same as "is a member of
db_owner database role"
Owner of a database is one single
login, while there may be as many db_owners as you want.
And in fact if you execute
exec sp_helptext 'sp_updatestats';
in the first rows you'll find:
declare @dbsid varbinary(85)
select @dbsid = owner_sid
where name = db_name()
-- Check the user sysadmin
if not is_srvrolemember('sysadmin') = 1 and suser_sid() <> @dbsid
This controls if the executor is a member of
sysadmin server role or he
owns this database:
suser_sid() <> @dbsid where
owner_sid of current
To find out the owner of some database you should execute
where name = 'some_db';
And you also can find it using SSMS: