As you mentioned in your title, dicts are hash tables. No tree searching is used. Looking up a key is a nearly constant time operation, regardless of the size of the dict.
You might find the answers to this question helpful: How are Python's Built In Dictionaries Implemented