Figured it out ... Sort of.
SoapUI says it's executing the tcpmon script with the command sh -c ./tcpmon.sh. Out of the zip file, the script is not executable. When run as sh ./tcpmon.sh this wouldn't matter. But then I noticed the -c in the log. So, its forking a shell and asking it to run the script - which requires that it be executable. chmod +x tcpmon.sh and problem solved ... sort of.
There's some other configuration nuances - perhaps due to the fact that my endpoint server is using SSL. So, I gave up on tcpmon and used Charles instead.
Now it works the way I want it to! Charles is awesome!