Why doesn't watch rhyme with catch, batch, latch, patch, and match?
Because of the rounded lips of the preceding consonant "w".
Many (but not all) English words with an "a" following "w", "wh" or "qu" have a different vowel from similar words with a different consonant.
what vs. that
watch vs. catch
squash, wash, vs. cash
war, warm vs car, arm
The exceptions often have a velar (/k/, /g/, or /ŋ/) or /m/ following the "a":
wag, whack, quack, wangle, swam, wham have the vowel of tag, tack, tangle, tram not the vowel of wad, what, quad, wan.
But there are exceptions to this rule as well:
Quag has the vowel of quad despite its velar; and warm, swarm have the vowel of war, not that of harm.
They are derived from different Old English words and some of the old pronunciation has lingered on. Batch from a word related to bacan which has to do with baking. Watch comes from waeccende meaning to stay awake.
That being said, words sometimes change pronunciation for no particular reason. On reading John Clifford's comment I should add that regionalism makes a difference as well. Different linguistic groups pronounce words differently. In New York, for instance, the words "Mary", "marry", and "merry" are pronounced quite differently but in most other English-speaking communities they sound the same.
Maybe I should have limited my answer to "just because".