By having modern tooling to program GPGPU, allowing several languages to target them instead of plain C dialect, IDE and graphical debuggers to track down issues on GPGPU just like on the CPU, and a myriad of good quality libraries.
Meanwhile Intel and AMD, never delivered something at the same level as CUDA for OpenCL, and when they finally decided to react with SPIR and C++, everyone was already too busy to care, and it isn't as if the tooling has improved that much.
Hence why OpenCL 3.0 is basically OpenCL 1.0 rebranded.