“Run on an OS” vs. “run under an OS”
"This application can run on windows" versus "This application can run under windows"
Which is more natural, or what's the difference between them?
Neither is more natural. Both are metaphors. There are no natural English words for software.
So, which preposition one uses depends on which metaphor one is employing. If one doesn't know that, one shouldn't be writing documentation.
On Windows™ uses a two-dimensional metaphor, which is almost automatic, since a window is in fact a two-dimensional object, and refers to the monitor screen. That's very common, and requires on.
Under Windows™, on the other hand, refers to the root task of an OS, which is to define, manage, and regulate all other programs, hence invoking a social hierarchic UP/DOWN metaphor (under the old King, under the new administration, etc.), which licenses use of under.
This first is more natural although I believe that the second is the more original.
Originally operating systems would be seen roughly like a set of rules, in which case you run "under" a set of rules. Nowadays an operating system is seen as a basis for building things upon, like a foundation, in which case you run "on" a foundation.
Both would be valid. I would prefer the first.
The Corpus of Contemporary American English has twelve records for run on Windows and eleven for run under Windows. The British National Corpus shows a decisive preference for the latter, with nine records, against one for the former.
To be certain, it would be necessary to search for on Windows and under Windows with other forms of run, and perhaps with other collocations, and look closely at the context of each record, but the result surprised me. I (a computing layperson) would only have thought of saying on Windows myself.