As far as I know, every machine has a globally unique MAC address. So why do we need local MAC address? We can identify the machines in a network using the globally unique MAC address.
Not every device has a globally unique MAC address, and I'm not sure why you think that. Some layer-2 protocols (in particular the IEEE LAN protocols) use MAC addressing, but some use other addressing or no addressing at all. Of those that use MAC addressing, some use 48-bit MAC addresses, and some use 64-bit MAC addresses, but all are LAN (layer-2) protocols.
A vendor can buy an OUI from the IEEE, and they can assign the MAC addresses in its OUI as it sees fit. A vendor that makes ethernet, token ring, Wi-Fi, etc. NICs can reuse the same MAC address on all those. Some vendors reuse MAC addresses in different regions of the world.
If you mean the reason for the U/L bit in the OUI, that was part of the original specification. End-users can set that bit and assign MAC addresses in a way that works for them.