Why is ‘i’ in milk pronounced differently from ‘i’ in find?
The answer to this question is very complex if all details have to be included; but here is a very simplified version:
1. Homorganic lengthening
Some time in the later stages of Old English (so some time around 1000 AD or so), a sound change happened whereby vowels were lengthened if they were immediately followed by a voiced homorganic consonant cluster, i.e., two voiced consonants with the same place of articulation. In other words, before /mb nd ld rd ŋg/.
This means changes like the following (a macron ‘¯’ over a vowel indicates a long vowel):
ċild > ċīld ‘child’
(ġe)cynde > (ġe)cȳnde ‘kind’
climban > clīmban ‘climb’
bringan > brīngan ‘bring’
ald > āld ‘old’
– etc.
In Old English, /i/ and /ī/ had the same vowel quality: it was only the length of the vowel that distinguished them.
2. Pre-cluster/polysyllabic shortening
Some time not long after this, a set of intermingling sound changes that had almost the opposite effect occurred: long stressed vowels were shortened if they came before a consonant cluster or a geminate consonant (or sometimes even a single consonant), depending on the number of syllables in the word. This is often called pre-cluster shortening, but it’s not limited only to clusters, so I’m calling it the ‘pre-cluster/polysyllabic shortening’, for lack of a better term. It wasn’t as neat and consistent a sound change as homorganic lengthening, but it happened to many, many words. It happened most regularly if the long vowel came before:
- a cluster of two or more consonants if there were two or more syllables left in the word
- a cluster of three or more consonants, regardless of how many syllables were left in the word
- a geminate consonant, especially if there was only one syllable left in the word
This meant changes like the following, with the relevant type of shortening (1., 2., or 3.) in parentheses for clarity:
ċīldren > ċildren ‘children’ (1.) – or
ċīlderen > ċilderen ‘children’ (2.) (both variants existed)
gōd-spell > god-spell ‘gospel’ (2.) (lit. ‘good spell’, a calque on Greek εὐ-αγγέλιον ‘evangel’)
āldormann > aldormann ‘alderman’ (1.)
blēdde > bledde ‘bled’ (3., from blēdan ‘bleed’, which kept its long vowel)
Note that in all the examples in point 1. on homorganic lengthening above, there is at most one syllable after the vowel that is lengthened, the clusters all consist of only two consonants, and they are not geminate consonants—so none of the above applies.
However, there are also quite a few cases where even a two-consonant cluster causes the shortening even if there is only one syllable left in the word; Old English wīs ‘wise’ and thence derived wīsdōm ‘wisdom’ both had a long i, for instance, whereas in Middle English, wīs had a long i, but wisdom has a short i (the unstressed ō is also shortened, but that’s just because it’s unstressed).
And just to make it even less consistent, a long vowel in the first syllable of a trisyllabic word was sometimes shortened even if there was no cluster involved; compare for example south (from Old English sūþ) to southern (from Old English sūþerne). This is called trisyllabic laxing, and type 1 above is often included as a sort of crossover between pre-cluster/polysyllabic shortening and trisyllabic laxing.
After these various shortenings, thus, you had singular ċīld (with long /ī/) and plural ċild(e)ren (with short /i/). Once this state of affairs had been arrived at, it has generally remained remarkably intact in English up until the present day.
3. Various later changes
Old English /ā/ was rounded a bit and became /ɔ̄/ quite early on, but short /a/ remained the same. That is why āld gives Modern English old, but we still have the a in alderman.
Much, much later on (between the 15th and 18th centuries), English vowels were all rather cruelly subjected to something that messed everything up quite fantastically: the Great Vowel Shift.
During this period, vowels jumped back and forth a bit and changed their length and quality a good deal. For the particular context relevant to us here, short /i/ stayed more or less the same, whereas long /ī/ was diphthongised into /əɪ/ and later on /aɪ/, the way it is pronounced today.
Your rule is not correct for i+nd: find, kind, mind, behind. There are other consonant groups where your rule is not correct as in child, mild, wild. When i is followed by r + consonant the pronunciation is neither /i/ nor /ai/ as in bird, mirth.
Complicated explanations about historical sound changes don't help learners much. Good books about present-day pronunciation simply give the letter/letters and indicate what pronunciations are possible. For each pronunciation a lot of material is given. In any case a learner would see that such an over-simplification as given in the original post is not tenable.
Your first sentence is incorrect. Sometimes it is pronounced as a short vowel, and sometimes long.
English has drawn from so many different languages, it is almost astonishing there is consistency at all. You will find that where words have come from the same source, they will often have the same (or similar) rules, but where some come from Latin influences, some from Germanic etc, they may follow very different rules.