bathe: the a was lengthened in Middle English, which results in the Modern English "face" vowel [eɪ]
“Bathe” is pronounced with [eɪ] (which is not the sound in the American version of "bath") because [eɪ] is what a Middle English long [aː] sound turned into. The vowel in the verb bathe was lengthened during the Middle English period because the verb originally had a vowel after the ”th” consonant sound: when this vowel sound was lost (or before it was lost), it caused lengthening of the [a] in the preceding syllable. The same kind of vowel alternation shows up in the noun/verb pairs grass/graze and glass/glaze (also in some other word pairs such as brass/brazen and staff/staves).
bath: short vowel in Middle English, lengthened during the Modern English period, in only some dialects
The vowel in “bath” was lengthened later on in some (but not all) dialects by a process that also lengthened a before the other voiceless fricatives /s/ and /f/ in certain contexts. But because the lengthening of a before voiceless fricatives happened later, it resulted in a different quality of the vowel. In southern British English, lengthened a in this context has the quality of a back vowel, [ɑː].
In some American English accents, "ath" words like "bath" instead show a lengthened or "tense" vowel with a front quality, which is realized phonetically in a variety of ways (e.g. [æə̯] or [eə̯]). But however it's pronounced, I have not heard of American English speakers merging the vowel in bath with the face vowel (which is [eɪ] or [e]).
A more detailed history
You only asked about the difference between the vowels, but here is an overview of the entire history of other differences between the words.
Here's a chart:
Abbreviations: PG = Proto-Germanic, OE = Old English, ME = Middle English, ModE = Modern English, SBE = Southern British English
Between PG and OE, the sound changes of "Anglo-Frisian brightening" and "A-restoration" applied, creating the difference in Old English between æ in bæþ and a in baþian. Although marked in writing, the distinction between short æ and short a in Old English was barely contrastive and was lost in Middle English. (The Old English long vowels ǣ and ā, on the other hand, had a stronger contrast that did endure in later forms of the language.) The quoted Etymonline entry is wrong: i-mutation did not apply to either of these words. Even though baþian has an i, the i in the Class II weak verb suffix -ian did not cause i-mutation; this may be because it came from the Proto-Germanic suffix -ōną which had no *i. Fricative sounds like þ had "allophonic voicing" in Old English: at the end of a word, þ was pronounced [θ], while in the middle of a word between vowels, þ was pronounced [ð].
Between OE and Early Middle English, the vowel merger mentioned above turned the vowel in both words into short [a]. Vowel reduction caused the infinitive ending -ian to eventually become something like [ən]; word-final [n] could also be lost in this context, leaving only a schwa [ə]. Word-final schwa in Middle English was written with the letter "e", so Middle English forms like [baðə] (and others like it) are what's behind the "silent e" spelling pattern of "bathe". (I wrote a more detailed answer about "silent e" spellings here.)
During the Middle English period, final schwa sounds came to be lost, but not before causing a preceding short [a], [e] or [o] sound to lengthen to [aː], [ɛː] or [ɔː] respectively. (Lengthening of [i] and [u] happened only sometimes: the modern English "silent e" spelling patterns for the letters "i" and "u" have more complicated origins.) So by the Late Middle English period, bathe might be pronounced [baːð]. By this point, the distinction between [θ] and [ð] would be considered phonemic rather than allophonic as both sounds could occur in the same environment (at the end of a word). The loss of word-final schwa created a number of other pairs of words with alternations between voiced and voiceless word-final fricatives.
Between Middle English and Early Modern English, the Great Vowel Shift turned [aː] into [eɪ]. There were similarly large changes in the pronunciation of many other Middle English long vowel sounds. Middle English short [a] usually came to have a short front pronunciation [æ] in Modern English, but in some contexts it was backed and lengthened to [ɑː]. The history of that lengthening is really a separate question as it isn't relevant to why bath and bathe are pronounced differently.