OP started with mangle rule, so I kept that. See it as option a). Or there’s routing rule as option b). Both will work. Which one is better depends on other requirements.
The error message is quite clear - it is impossible for a rule in a prerouting chain to match on an outgoing interface name, simply because the outgoing interface name cannot be known before routing has been done. The very purpose of your mangle rule is to tell the router to use a particular routing table for matching packets as @Sob explained.
So maybe the confusion comes from the fact that the syntax of the firewall rules doesn’t clearly distinguish between match conditions and action parameters, so you’ve got an impression that the mangle rule can set an outgoing interface rather than match on it? There actually is a possibility to completely bypass the standard routing using a mangle rule with action=route, but it’s a really unusual way of doing things (and it indicates an IP address of a gateway, not a name of out-interface).
@anav: You don’t usually need action=route. Previously it was the only way how to route packets with local destination address elsewhere (*1), because in normal routing process, handling of local destinations were hardcoded to always go to router itself. In latest v7 they changed it and gave routing marks maximum priority, so you can just mark routing and if route in that table points elsewhere, it will be used.
–
(*1) Make them go to forward and to other router, instead of to input and to this router. It’s generally weird thing to do, but sometimes you can find some use for that.