I suspect the issue may relate to the tilde prefix. (I take it you have DSK31 defined relative to your $HOME directory?) It doesn't seem like that should be a problem, but apparently the logic that sends the file from Linux to Windows is trying to use the same filespec on the Windows side. It's not surprising that Windows wouldn't like that!
I suggest starting with a very minimal CSV containing only a few lines, and then use SET DEBUG TAGS +csv2xl before running your test. That should spit out a ton of trace messages, which might include some clue near the end where the file gets transferred to the PC and launched. I'll try to set up a test to see if I can reproduce it here.