Etymology
From Middle English scholde, from Old English sċolde, first and third person preterite form of sċulan (“should,” “have to,” “to owe”), the ancestor of English shall. By surface analysis, shall + -ed. Cognate with German sollte, Gothic 𐍃𐌺𐌿𐌻𐌳𐌰 (skulda), Swedish skulle. Related to Middle English shild and shildy.
The loss of /l/ in this word is probably due to weak stress, as in would and could (though in the latter, the /l/ was due to the analogy of the former two).