I personally have much, much more expierience in OpenGL than DX, and in OpenGL you should never use precompiled shaders. IMHO
OpenGL doesn't actually have precompiled shaders in the sense of Direct3D's.
Newer versions have allowed an application-controlled shader cache though that's typically built into the GPU drivers anyhow and not necessarily of any real benefit. Some people try to use these for distribution on certain mobile devices and the like, but it's a terrible idea since the GL shader cache blobs are NOT meant to be used on any machine aside from the one that generated them, period. The output of the shader cache is dependent on the specific hardware, the specific driver, the specific OS, and the specific versions of each of those. You might update a driver and your cache is invalid, or some mobile phone might switch chip suppliers a couple months after being released and hence have a slightly/severely different GPU.
The only real use for OpenGL's shader cache is to compile the shaders on the end-user's machine during installation so that subsequent launches don't need to recompile anything (and then be prepared to recompile them when the game starts in the event the user dares to upgrade a driver or install a different GPU). In this use case and this use case only, OpenGL's shader cache is not only useful but can actually result in better load times than Direct3D.
You can do something similar with Direct3D by shipping HLSL, compiling to bytecode, caching that, and then passing that in on each startup, but the final compilation steps will always be performed every time you call CreateVertexShader or friends. There's no way for your application to read or save the final hardware-specific shader code in Direct3D, much less load it. However, it's typically a better idea in Direct3D to ship the compiled bytecode, if for no other reason than that it removes a dependency on d3dcompiler_XX.dll from your end product (which is not part of the standard end-user Direct3D redistributable). By not requiring external DLLs you can even make standalone .exe files that launch the game without needing an install process by building your data into the .exe itself, which is handy for some types of games in some circumstances since Fewer Steps to Play == More Players (so more in-game sales in a f2p title, more chance for a reviewer or producer to try it out, etc.). There's a few off-the-shelf engines that have the ability to build stand-alone game executables like that.