From the name of a river in Ireland. It is not clear why it has become so popular as a given name; compare Clodagh. In part it may also be a transferred use of the Irish surname, Gaelic Ó Seanáin ‘descendant of Seanán’ (a diminutive of Seán). Shannon is not found as a traditional given name in Ireland itself.
There is a French habitational name Bucy, from places so called in Aisne and Loiret. The place name is from Bucciacum, the name of a Gallo-Roman estate, composed of the personal name Buccius + the locative suffix -acum. However, the distribution of the surname in the U.S. is not consistent with a French origin.