late 14c. (early 14c. in Anglo-French), from Old French grave, graue, apparently a misspelling of grané "sauce, stew," with -n- misread for -u- — the character used for -v- in medial positions in words in medieval manuscripts. The French word probably originally meant "properly grained, seasoned," from Latin granum "grain, seed" (see grain (n.)).
The meaning "money easily acquired" is attested by 1910; gravy train (by 1899) as something lucrative or productive is said to have been originally railroad slang for a short haul that paid well. Gravy-boat "small, deep dish for holding gravy or sauce" is from 1827.