Another factor is the lack of a good cross-platform GUI toolkit (by which I mean one that (a) doesn't feel out-of-place and jarring on any platform and (b) doesn't turn a 50K app into a 1GB download.)
Between that and the level of complexity of modern GUI toolkits - and the size of their dependency trees - distribution of a GUI app is a much bigger headache than distributing a terminal app.
there is TCL-TK. :)
Super easy to use, fast, almost zero ram usage and battle tested for 2 decades.
Make the core feature of your app a library, then write different interfaces according to the targeted platforms.