Olá Álvaro,
A diferença é que o tipo VARCHAR suporta até 65.535 caracteres, enquanto que o maior tipo de TEXT (que é o LONGTEXT) suporta 4.294.967.295 caracteres.
Então com isso você já sabe quando usar um e outro. Se o valor que será gravado em uma coluna pode ser gravado com um VARCHAR, é recomendado usá-lo. Evite usar TEXT a não ser que necessite.
Note que isso é somente para MySQL, em outros bancos de dados pode ter outros significados, no SQL Server da Microsoft por exemplo, ambos tem a mesma capacidade de armazenamento, porém o tipo TEXT está deprecated, significando que em próximas versões será removido completamente e ficará somente o VARCHAR.
Abraços.