Yes, but there is an overhead in creating a temp table because it has to physically exist in tempdb whereas in this case there are unlikely to be many rows in the lookup table variable so it should only exist in memory.
I have had bad experiences with table variables in the past. It's a pity the function in SQL didn't work, but at least I learnt something from this.
Simon