EEXIST does sounds like a strange reason for exec(2) to fail. Did you strace -f to confirm that EEXIST is indeed set by execve() ?
I've seen weirdly-named files appear in NFS-exported file systems. I seem to remember they were related to deleted files but it might happen in other circumstances. A name collision could explain EEXIST. I would take a look on the NFS server. Assuming you've managed to successfully use IPC::Open2::open2 on other executables in the same NFS-mounted file system and it is only mymaple that fails : if mymaple is a script, what is it's shebang line ? Is file creation involved somehow ? Shot in the dark : does the error go away if you remove the "2>&1" part ?