If your values are unique, the dirty-hack way to get the key for a particular value is this:
set theKey [dict get [lreverse $theDict] $theValue]
I wouldn't particularly recommend it as it's a type-buster, but it will do the right thing. (If you've got the same value several times, this will return the key for the first instance.)
Note that you still retain the original dictionary in $theDict
if you do this. (Well, assuming you're satisfied with Tcl's detailed type semantics when behind-the-scenes type conversions are happening.)
If you're thinking about doing this more than very occasionally, consider keeping a reversed dictionary around alongside the original so that you can do the lookup rapidly. This applies even if you use the dict keys [dict filter …]
solution; linear scans of anything large can definitely slay you otherwise.