The number of comparisons is higher than a simple binary subdivision of a range of numbers, because you need to check for <, = and > the current node.
Pseudocode:
for node,
if x < node, search left
else if x > node, search right
else x == node (stop searching)
It depends on what order you do your checks. The program needs to check up to two comparisons per node. Since x == node for only one node ever it makes the most coding sense to put that one as the default condition (because of branch prediction, you want more likely branches to be tested first).
So on the first pass, node 8, it would find (x < 8) true, the move to node 5, find (x < 5) true, then move to the left.
Now, what's to the left could be either 1 or 3 (since it's an unfilled subtree, it could be either). If it's 1, then move to node 1 find (x < 1) false, then find (x > 1) true, then move to node 3.
At this stage we're at node 3. We find (x < 3) false, then check for (x > 3), also false, thus deducing x == 3. Shortest possible path is 4 checks, but if we had to stop by node 1 (equally likely) we did this is 6 checks.
Note, that I deliberately biased this for checking (x < node) first, and if you check them in a different order then the average comparison count would shoot up. e.g. if you check equality first, then you add additional unneeded checks:
for node,
if x == node (stop searching)
else if x < node, search left
else x > node, search right
So on the first pass, node 8, it would find (x == 8) false, then find (x < 8) true, then find (x == 5) false, then find (x < 5) true, then (50% chance) go to node 1, find (x == 1) false, then find (x < 1) false, then find (x == 3) true. So either 5 or 7 checks this way. If you search right branches first, then you get a different measurement.