Deborah Melkin covers the gamut:
My stance is that temp tables are a useful tool when properly used, but they’re very easy to misuse to the point of creating problems. Table variables are even more misused for similar reasons; that could be a whole other blog post that almost starts and ends with “they’re not variables stored in memory but just regular temp tables without stats.”
Click through for examples in which temp tables have been quite helpful, and cases in which temp tables have been actively harmful.