Very possibly a failed oil level sensor in the oil tank. From what I've been reading, this has been a well-known problem on Mercury's for some 30 years now. My 2014 OptiMax 125 has the same issue.
It is my understanding that on certain "older" motors, the sensor itself is replaceable...or at least repairable through the tank opening. But that on "newer" units, the only fix is a whole new tank/sensor. Not sure exactly what models/years, but I do know mine is not the repairable/replaceable kind. Not ready to shell out $300-$400 for a new tank with a sensor that is very likely to fail again, and definitely not taking a chance on a used one.
I've heard you can "spoof" it by disconnecting the sensor and jumpering the harness. I've also heard that you want to disconnect and NOT jumper. I've also heard you want to disconnect only one wire. Naturally, all threads I've found on various forums where these fixes have been suggested have no "follow up" that say "this worked" or "this didn't work." Of course, if you spoof the sensor, you'll have to get in the habit of visually making sure your oil tank is filled--which IMO you should do anyway.
I haven't tried any of these fixes myself yet, but I'm going to. After I replace the buzzer itself, which has also failed to where I have to stick my head inside the center console to hear it.