Meanwhile NVIDIA also seems to have really good marketing behind their GPU software stack. Lots of people who use CUDA have no idea that OpenCL exists and no idea that porting between CUDA and OCL is not super difficult. (It's been years since I've looked at CUDA it might have diverged more significantly since).
AMD's stability (on linux at least) is pretty poor. I don't know if it hurts adoption much, but it can't help.
Also, AMD absolutely dominates on integer workloads which is why it had been used so much for cryptocoin hashing machines prior to the widespread availability of ASICs for most algorithms. On floating point workloads, NVIDIA might do better than AMD, and those seem much more common in science than integer math.