It seems like there must be more at play, but I'll admit a lack of insight and imagination on this one.
I think the reasons are twofold: 1. CUDA had a big headstart over OpenCL. 2. NVIDIA has invested a lot in great libraries for scientific computing. E.g. for neural nets, they have made a library of primitives on top of CUDA for neural nets (cuDNN), which has been adopted by all the major packages.
AMD should have invested much more heavily into ML, if they had, their share price would probably look a bit better than it does now.
This looks interesting - running CUDA on any GPU. http://venturebeat.com/2016/03/09/otoy-breakthrough-lets-gam...
Also somewhat related: AMD seems to be moving towards supporting CUDA on its GPUs in the future: http://www.amd.com/en-us/press-releases/Pages/boltzmann-init...
Its sort of supporting CUDA, just like a car ferry sort of lets your car 'drive' across a large body of water.
Also, the premise of OpenCL is somewhat faulty. You end up optimizing for particular architectures regardless.