This Century 21 article says that Topsail Island wasn’t named because of pirate ships’ topsails showing above the trees as they tried to hide behind the island. That the name was coined on navigational charts way before the island was named.
But come on! The coined name had to originate from something that described the island. The cartographers who called it that on the charts probably did so because it really was the home of. Blackbeard and other pirates who stopped there frequently–and whoever navigated along the NC coast would know where they were because of the topsails visible on the other side of the island.