Hash functions are meant to be as random as possible, so if they give you ordered keys (while it would be super useful for some things) it would kind of defeat the purpose of randomization and you'd most likely get more collissions than you would expect otherwise.
BST are better for sorting data because... well it gets sorted when you put it in there by default. It's possible to keep the data you put into a hashtable ordered in a seperate data structure (ex. put only the keys into a BST), so that way you have it sorted somewhere AND you get O(1) search time in your hashtable. But of course that requires you to implement another data structure, up more memory, perform additional operations, etc.
In conclusion: If you're going to rely heavily on the data being sorted and want to use relatively a lot of the data, a lot of the time, go with a BST. Otherwise, if you want to get specific things from your data structure very quickly, go with a HashTable (possibly with a BST of keys if you aren't worried about using memory).