Forcing a hash join on a temporary table generates error
What you're running into isn't because of the temp table, it's because of the type of join you've chosen with the hint you're forcing. 

Both Merge and Hash joins require at least one equality predicate to run. 

For more information, check out these old (but awesome) blog posts from Craig Freedman.

Introduction to Joins

Nested Loops Join

Merge Join

Hash Join