Old English fæste "firmly, securely; strictly;" also, perhaps, "speedily," from Proto-Germanic *fasto (source also of Old Saxon fasto, Old Frisian feste, Dutch vast, Old High German fasto, German fast "almost," but in earlier use "firmly, immovably, strongly, very"), from *fastu- (adj.) "firm, fast" (see fast (adj.)).
The meaning "quickly, swiftly, rapidly" was perhaps in Old English, certainly by c. 1200, probably from or developed under influence of Old Norse fast "firmly, fast." This sense developed, apparently in Scandinavian, from that of "firmly, strongly, vigorously" (to run hard means the same as to run fast; also compare fast asleep, also compare Old Norse drekka fast "to drink hard," telja fast "to give (someone) a severe lesson"). Or perhaps from the notion of a runner who "sticks" close to whatever he is chasing (compare Old Danish fast "much, swiftly, at once, near to, almost," and sense evolution of German fix "fast, fixed; fast, quick, nimble," from Latin fixus). The expression fast by "near, close, beside" also is said to be from Scandinavian. To fast talk someone (v.) is recorded by 1946.