Aha, got it working by modifying the plugin. On my system that's ~/.attract/mame/plugins/hiscore/init.lua.
(And note that I'm using version 1.0.0 of the hiscore plugin, current version is 1.0.1 but that doesn't work with my version of MAME).
I had to hard code the "hiscore_path". The line was:
local hiscore_path = "hi";
I changed that to:
local hiscore_path = "/home/wrybread/.attract/mame/high";
And now all is well in the world.
And here's an odd one though: it doesn't work if I set that path to "/home/wrybread/.attract/mame/hi", which is the normal path it would be using, since that's the subfolder of mame. That was a tough one to figure out, since it made me think hard coding the path wasn't working. If I set it to any subfolder other than "hi" it works fine.
That was a bunch of tricky issues, but I'm super psyched to have high scores finally working on my cabinet. Previously I was using "save state", which kind of works but that means the games are already running when someone starts a game, which is clunky. And it often loses the high scores anyway.