Got it working!
I tried using system() and echoing the result code, which was 2. I had no idea what 2 meant, or means. But there it was. Still file size zero.
Then I tried using a different user and password for the database (on my shared host there are three sets - a full-access set, a read/write, and a read only: I'd been using the full access, but i tried the read/write).
I got a result code of "0". Great I thought, even worse. But lo and behold, the dump worked and I got data.
Then I retyped the original, full access user & pw and the dump worked again.
All I can think is that, in copying the user and password from TextEdit (which is formatted text) into BBEdit, somehow something came through screwy. I've been noticing a similar problem when copying passwords and pasting into http access login windows. Hand-typing always works, copy/paste sometimes doesn't.
Anyway, it works now. And I think the result code of "0" means it worked. I'm back to using exec() instead of system(), fwiw.
With a few more gray hairs...
Thanks.