Compatibility mode change does not reflect on secondaries
Below 

ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }

is not propagated to secondaries in DB mirroring or AlwaysON since they ship log blocks vs transactions - (logshipping you take log backups and ship it to secondary server and restore them).

There is a reason why they should not change the DB compatibility level as you certify your application based on DB Compatibility level vs a particuliar version of sql server. 

This is same as if you change the owner of database .. you have to change it on secondary when it becomes Primary.


  how can i really get this changed without breaking LS or mirroring if possible. 


You dont have to break mirroring or LS. You have to just failover and failback.

For logshipping, since it is physical log backup-copy-restore, once you restore the database and bring it online or readonly it will reflect the change. For mirroring, you can just failover and failback. 

The point is to bring the db to read/write state and do alter database in AG or mirroring configuration.