The main difference is that with overrides you have a ‘local copy’ of the original asset (collections and all) that you create an “override” to change certain elements. For example – the bones transforms for animation, or adding or disabling modifiers etc.
With proxies – you basically only want to create a ‘proxy’ (local copy) for the rig object. All the other components will remain as one lump (an empty), rather than all the original collections etc.
Proxies will be phased out in favour of this system. However, not everything is actually “overrideable” yet. Which means you still need to old system for some cases.