I was fighting a siege battle as West Rome in multiplayer campaign (other player wasn't in the battle) against the Sclavenians with a navy and brought my ranged ships to bear on the shoreline. Slavic archers were shooting poison arrows at me which was hurting my men pretty bad, but then all of a sudden a ship started sinking.
There were no catapults on the field, the ship couldn't have had more than 10% fire damage from a garrison tower, and it certainly wasn't rammed considering the enemy had no ships left in the water. It also was not a case of friendly fire.
One Slavic archer managed to sink two of my mercenary light skirmisher ships before it routed. Later in the battle, an entirely different Slavic archer sank one of my regular light bow ships that had absolutely no damage and had not even lost 5 crew. Every ship that sunk had the skull symbol indicating the poison status effect on it. Each time, a ship went from having no hull damage to immediately entering the sinking animation and setting off the "one of our ships is sinking!" voice alert.
The archers might have landed from enemy fleets or been in the garrison or defending army, I'm not sure.