The more correct method of describing a target is to compare the hash to a 256bit number, and it's validity is determined by comparing the hash and the target, where the hash has to be smaller than the target to be valid.
From a coding perspective, if I were writing a CPU miner, I could see why the "less than" test is used-- at the machine language level, it's faster to perform four 64-bit subtractions and then check the carry flag to implement one 256-bit subtraction than to try to scan a 256-bit value for the first 1 bit. But subtraction is also misleading it's just an implementation detail and originally the leading zeroes are what mattered.