i replicated the script on my channel and it worked properly. could just be an I/O permission issue relating to your user account & writing to the appdata folder (presuming you're using windows since mIRC is windows-specific & presuming that you didn't point mIRC's scripts folder outside of its default location; didn't see if there were any drop-in cross-platform replacements for mIRC wrt its scripting language).
my hypothesis as to why !show works without the write operation fully succeeding (wrt the file system) is that it operates on a cache that copies the contents of the file if it exists. it doesn't reopen the file on every !show event as that would obviously be extremely costly in large chat rooms. the !request event saves its data in the local cache & makes an attempt to output to the file buffer (at which point the script doesn't care about the end result of the write operation). it's either that or both events just operate directly with an uncloseable file i/o buffer.
the simplest thing you could do is try to write to a folder you know you have complete permissions over: just replace requestsinfo.txt in both the !request and !show event listeners with a direct path (e.g. C:\requestsinfo.txt)
i added you to debug in detail.
edit: using a direct path worked for him.