I think the key is that CUDA is much more like the Microsoft Windows software part of the duopoly than the Intel x86 hardware part of the old Wintel duopoly. At best back in the glory days of that era, you could have weird hackish things like WINE ... until Microsoft's business model changed and started being interested in supporting virtualization to build up Azure.
The key is that while there were many clones of x86, there never really was an attempt at a company built around "run MS Windows programs natively" because maintaining software compatability is an order of magnitude harder than doing it for hardware.
CUDA is absolutely not equivalent to Windows as a platform. It's essentially a single API, not a huge, multilayer and futzy platform with multiple weirdly behaved APIs.
Moreover, companies aren't buying GPUs to keep their huge stable of legacy applications running. They want to create new AI applications and CUDA is a simple API for doing that (at a certain level).
CUDA is a programming language with libraries (cuBLAS, cuSPARSE, etc.) that are constantly having things added and try to maintain backwards compatibility. It's not as big and hefty as all of Win32 sure, but it's still far more difficult than x86 compatibility.
Those libraries are written CUDA. Windows has had a multitude of APIs and layers (DOS, WIN32, etc) none of which were written in an underlying language/api.
Microsoft's entire history is around building a moat of APIs because the PC software industries has a wide variety. Nvidia has, so far, been focused on building actually useful things for developers. Basically, where all the other manufacturers viewed their chips as special purpose devices, Nvidia allowed developers to treat their chips as generic parallel processors and this facilitated the current AI revolution/bubble. Now that Nvidia has created this market, it can charge by the use rather than charging by processing power. The thing is that Nvidia's large potential competitors simply don't want to create clones even if they could - because clones would have to be sold by processing power rather than with a markup for their usefulness. It's worth looking at the list of x86 compatible makers [1]. Making an x86 wasn't quite something you could do in your garage but clearly the barriers to entry weren't huge. But any Nvidia compatible is going to cost a large amount of capital but can only sell by processor power and so AMD, Intel and similar sized entities don't have an interest in doing this.
The key is that while there were many clones of x86, there never really was an attempt at a company built around "run MS Windows programs natively" because maintaining software compatability is an order of magnitude harder than doing it for hardware.