I suspect, in an effort to ease the burden on the Development and QA teams at 3CX, they only release one platform during the alpha, beta, release candidate phases of development. This has been consistent for some time now. What is different is that the Windows version was not released at the same time as the Debian version when V20 went to PRODUCTION.
I have not seen an explanation why 3CX handled this release differently, but I have a few guesses. While V20 has been officially released for production use, 3CX is still working diligently on a number of important features -- example: scheduled reports. As a result, all the same reasons why they only release one platform during the beta platform still apply -- 3CX is focused on getting features implemented and they have chosen to release the most popular platform first. A second possible reason may have something to do with licensing changes since the Windows version will only be available for Pro and Enterprise?
3CX is written primarily in .NET which is cross-platform compatible. That means that any code written in .NET "Core" (now labeled simply .NET 8) is compatible with both Windows and Linux. As a developer, you simply publish (compile) a separate version for each platform. There are some necessary changes between the platforms -- file paths is an example that comes to mind. But there may still be portions of the PBX written in C++ and it may be a little more complicated to get that C++ code working on both Windows and Linux.