I don't have personal experience, but this guy does:
VARCHAR vs. TEXT - some performance numbers
Quick answer:  varchar was a good bit faster.  
Edit - no, it wasn't.  He was indexing them differently - he had a full index on the varchar (255 chars) but a 255-char prefix index on the text.  When he removed that, they performed more or less the same.
Later in the thread is this interesting tidbit:
  When a tmp table is needed for a
  SELECT, the first choice is to use
  MEMORY, which will be RAM-only, hence
  probably noticeably faster. (Second
  choice is MyISAM.) However, TEXT and
  BLOB are not allowed in MEMORY, so it
  can't use it. (There are other reasons
  why it might skip MEMORY.)
Edit 2 - some more relevant info, this time comparing the way different indices deal with the various types.
  MyISAM puts TEXT and BLOB 'inline'. If
  you are searching a table (range scan
  / table scan), you are 'stepping over
  those cow paddies' -- costly for disk
  I/O. That is, the existence of the
  inline blob hurts performance in this
  case.
  
  InnoDB puts only 767 bytes of a TEXT
  or BLOB inline, the rest goes into
  some other block. This is a compromise
  that sometimes helps, sometimes hurts
  performance.
  
  Something else (Maria? Falcon? InnoDB
  plugin?) puts TEXTs and BLOBs entirely
  elsewhere. This would make a
  noticeable difference in performance
  when compared to VARCHAR. Sometimes
  TEXT would be faster (eg, range scan
  that does not need the blob);
  sometimes the VARCHAR would be faster
  (eg, if you need to look at it and/or
  return it).