"Marshal" is an ancient loanword from Norman French (cf. modern French maréchal), which in turn is borrowed from Old Frankish *marhskalk (="stable boy, keeper, servant"), being still evident in Middle Dutch maerscalc, marscal, and in modern Dutch maarschalk (="military chief commander"; the meaning influenced by the French use).
It is cognate with Old High German mar(ah)-scalc "id.", modern German (Feld-)Marschall (="military chief commander"; the meaning again influenced by the French use).
It originally and literally meant "horse servant", from Germanic *marha- "horse" (cf. English mare and modern German Mähre, meaning "horse of bad quality") and *skalk- "servant" (cf. Old Engl. scealc "servant, soldier" and outdated German Schalk, meaning "high-ranking servant"). This "horse servant" origin is retained in the current French name for farrier: maréchal-ferrant.
The late Roman and Byzantine title of comes stabuli ("count of the stables") was a calque of the Germanic, which became Old French con(n)estable and modern connétable, and, borrowed from the Old French, the English word "constable". Finally, in Byzantium, a marshal with elevated authority, notably a borderlands military command, was also known as an exarch.