English of obscure origin.
It may be a shortened form of Susanna/Susannah [q.v.], from Hebrew "lily".
Alternatively the rarer spelling Shannagh suggests a Gaelic connection, possibly with the Irish surname meaning "descendant of Seanach".