Direct3D is an API developed by Microsoft designed to help developers in 3D graphics. OpenGL and Direct3D are two separate APIs, but they should both interact with the video card using drivers developed by companies that produce video cards. Both APIs (Direct3D and OpenGL) must go through the driver to access the video card, and their speed depends on their design and their implementation in the video card drivers.
OpenCL is something else - it is intended for developers who write programs that perform general-purpose computing on the GPU (and not just for graphics). OpenCL is comparable to CUDA, but the latter is only supported on NVIDIA cards. Using CUDA instead of OpenCL may have some advantages, depending on your target system, since NVIDIA can make new features available to the CUDA API before they are accepted in the OpenCL API. However, even OpenCL and CUDA must interact with the driver in order to do something on the GPU.
As you already know, Direct3D works only on Microsoft and on Wine (for the most part), but its structure as an API is significantly different from the structure of OpenGL. Direct3D uses structures and includes more OOP elements in its API, while OpenGL acts as a state machine, without any OOP structures or functions. Direct3D can often progress a little faster than OpenGL in terms of features that it claims to officially support in its API, as it is not designed for maximum compatibility with a wide range of devices; On the other hand, OpenGL, as a rule, showed great inertia when it came to adopting new functions due to the inherent difficulty of adding new functions to its API (the Khronos Group is strongly influenced by the CAD industry, as well as many others, therefore it must satisfy a wide range of needs). The time it takes for the Khronos group to finally accept asynchronous API calls in OpenGL is a testament to this fact and has caused many people to lose faith in OpenGL.
However, OpenGL is cross-platform, Apple-approved, and it works on all the operating systems on which it is implemented. You can easily use it with many popular Windows tools (Qt, SDL, FreeGLUT, JogAmp, gtk, etc.) and you are sure that your application will compile on other operating systems if you write it correctly. The OpenGL API, unlike Direct3D, is an open source industry standard.
As far as performance is concerned, it is still debatable which one is faster: depending on how you structure your program or make your calls, this may change. However, performance should not be the subject of consideration which API you use unless you have tested your application and proven that choosing an API is the cause of your bottleneck.