Old English cræft (West Saxon, Northumbrian), -creft (Kentish), "power, physical strength, might," from Proto-Germanic *krab-/*kraf- (source also of Old Frisian kreft, Old High German chraft, German Kraft "strength, skill;" Old Norse kraptr "strength, virtue"). The ultimate etymology is uncertain.
Sense expanded in Old English to include "skill, dexterity; art, science, talent" (via a notion of "mental power"), which led by late Old English to the meaning "trade, handicraft, employment requiring special skill or dexterity," also "something built or made." The word still was used for "might, power" in Middle English.
Use for "small boat" is first recorded 1670s, probably from a phrase similar to vessels of small craft and referring either to the trade they did or the seamanship they required, or perhaps it preserves the word in its original sense of "power."