Clearing cache via the UI and via drush both end up calling drupal_flush_all_caches()
, but there is a subtle difference.
When you run from the UI, the PHP executes as Apache (or however you have your webserver configured). When you run from drush, it runs as the user who executed the command.
The problem in your case is that the LESS module will run its cron functions, which clears out the less directories in sites/default/files and makes a new one. When this happens, there is often a permission problem: your drush user owns the less directory and Apache can't write to it. Therefore, your CSS files don't get regenerated and your site end up unstyled.
My solution is to make sure my drush user is also in the Apache group on my server, and that my sites/default/files directory has 2775 permission on it and with ownership by apache:apache. I also make sure that the umask of httpd makes things group writable.
This makes sure that any files and directories that get created always have group ownership by apache, and that Apache can write to any directories that get made, regardless of whether it was done by httpd or from the command line.
EDIT:
There is one more difference that is worth noting. When you clear with drush, you just clear the caches. When you clear from the UI, you clear the caches and then the page reloads. When the page reloads from a cold cache, the parts used to rebuild that page get cached again. This includes making CSS files from the LESS sources.