A binary search tree keeps an ordering promise: everything smaller lives down the left, everything bigger down the right. Searching uses that promise, compare at the root, go left or right, and you've just eliminated half the remaining tree.
Repeat at each node and you reach any value in O(log n) steps: a balanced tree of a million values needs about 20 comparisons. That's the same halving idea as binary search on an array, expressed as a structure you can also insert into cheaply.