Try without the $ (the $ is used for special placeholders like $anyvm or $tag:work, after you set the tag via qvm-tags)
work-email work-gpg allow
In general, some services (like qvm-copy) don't specify a target VM, so they first try to see if they can match an ask rule, and then realize that they do not need to ask anything because of the `default_target` and `allow`. This doesn't seem to be the case here (thanks to the export QUBES_GPG_DOMAIN=work-gpg), but otherwise you would need:
work-email work-gpg ask,default_target=work-gpg
work-email work-gpg allow
or:
work-email $anyvm ask,default_target=work-gpg # by default, an attempt can be made, and the target is auto-selected to be work-gpg
work-email work-gpg allow # allow for work-gpg, without asking
work-email $anyvm deny # deny for all others, without asking
# Since all cases are covered, it will never actually ask, but it needs the first rule to support operations where the target is unknown, like `qvm-copy somefile'