The reason was back the days when DX8 started to support shaders but OpenGL was not even capable of using all hardware powers. It still suffers its stupid decision to make any hardware manufacturer capable of create own extensions (you can recognize them by nv_ _nv or ati_ _ati and similar) which make it more work to behave the same on all configurations.
No, that's not it at all. Most extensions are standard and not vendor-specific, the ones beginning ARB (OpenGL Architecture Review Board, the body that determines what is standard and what is not). They start off as vendor-specific extensions then are made core. If only one graphics card manufacturer uses a feature then it's a vendor-specific feature whether you use OpenGL or D3D (and you can use vendor specific features with the Windows API).
An OpenGL graphics card will support all the features of version 1.2 on any operating system, but it may also support some of the additional extensions. Most will support all of the features of v1.5 or v2.0, which includes shaders, but these core features have to be treated as ARB standard extensions under Windows, because Windows only supports v1.2.
Basically there's very little difference. The only real difference is down to the drivers, as that's what turns the equivalent D3D/OpenGL calls into something you see on the screen. Most consumer 3D graphics cards have drivers optimised for D3D under Windows, because they're mainly used for games and most games use D3D. Commercial 3D graphics cards are traditionally optimised for OpenGL because over 90% of non-games 3D applications use OpenGL even under Windows.
Depending on the application and the setup either system can yield very different results. Support both and you're laughing.