mid-14c., from Old French froc "a monk's habit" (12c.), of unknown origin; perhaps from Frankish *hrok or some other Germanic source (cf. Old High German hroc "mantle, coat;" Old Norse rokkr, Old English rocc, Old Frisian rokk, German Rock "coat"), from PIE root *rug- "to spin."
Another theory traces it to Medieval Latin floccus, from Latin floccus "flock of wool." Meaning "outer garment for women or children" is from 1530s. Frock-coat attested by 1823.