From bun + -y, though its ultimate origin is unknown. Together with rabbit, bunny has largely displaced its rhyme cony.
From Middle English bony, boni, from Old French bugne, buigne, from Old Frankish *bungjo, from Proto-Germanic *bungô, *bunkô. More at bunion, bunch.
From Middle English bune, from Old English bune, of unknown origin. Related to English bun, boon, Scots bune, boon, been, see bun, boon. Compare also bunweed.