BGP is an inter-provider protocol Or ?At least that's how things started out!
In a pure IPv4 world, that was the idea.?? if you had PI (Provider Independent) addresses that you owned, you ran BGP to advertise them.? If you had multiple providers and were advertising the same address space multiple directions, you ran BGP to do so.
Today, however, things are a little different...? In MPLS VPN environments, very often the ISP will require companies to run BGP because it makes THEIR life easier in configuration.
There are memory and processing difficulties on many routers about how many different routing protocols/instances you can run.? BGP is a bit more optimized for that, so it's not that they can't run other protocols, but they simply don't.
So in MPLS VPNs, there is not a technical routing need to run BGP, but more a political and policy one from the ISP.