A hash warning event means that part of the data processed for a hash operation was written to tempdb. This means that a hash join or hash aggregate has run out of memory and been forced to spill information to disk (tempdb) during query execution, which can degrade the SQL Server performance.
While spills are something that denotes some type of inefficiency, starting with IO usage where only memory usage was expected, but also estimation skews, they are introduced so that a query execution doesn’t exhaust the server’s memory and can effectively continue execution in spite its allocated resources are running out (memory spills).
SQL Server Profiler
Errors and Warnings -> Hash Warning