Core DB layer API gives developers a function which is db_query_temporary(), this function explicitely creates a temporary table. When you use MySQL, if the "CREATE TEMPORARY TABLES" is not set for the database user, this function will fail.
IRC people told me that Drupal core does not uses it, that is not a good point. The fact is Drupal is not only a CMS, but also a full and comprehensive framework for modules and sites building, and as such, it must, either make this works out the box, either tell users in the installation documentation that might be a problem.
Some modules will probably use it, if an end user download one of them, and aptempt to install it using the current INSTALL.mysql.txt file, it will fail, and he will never now why (end users, even some developers won't even understand the "Acces denied for user X" in watchdog message).
Attached a simple patch for the txt file. Feel free to use it. This is a real bug, please fix this. If I remember well, Drupal 5 documentation told to set this grant (I might be wrong on this statement).