As stated in the Unity Blog post 1000 Update Calls:
[If you have empty MonoBehaviour messages], all these methods will be called each frame for all your scripts, mostly doing nothing at all!
One might ask why should anyone care about an empty method? The thing is that these are the calls from native C++ land to managed C# land, they have a cost. Let’s see what this cost is.
Check out the full post for the details of all the steps Unity goes through for each script that has an Update function. But it's also a few years old, so how do we know if that still applies?
As Tyyppi_77 says, the very best way to answer "does X have a performance cost?" is to profile your game or a toy test scene with and without X, and compare the results. That way you find out the real, evidence-backed answer instantly, without waiting on hearsay from Internet strangers like me. 😉
Here's what my profiler shows when I put several hundred game objects with an empty Update in a built Unity game, using a development build (so it's possible this is optimized further in a release build)
As you can see, the cost is miniscule - about a tenth of a microsecond apiece - so this likely isn't anywhere near the top of your list of optimization priorities. But since these functions are easy to delete with no risk to the rest of the behaviour of your game, it's still good code hygiene to clean up methods you're not using.
This both makes your runtime leaner and faster, and is a useful signal to the development team that this method is not a stub that needs work, but something you've actively decided is unnecessary.
The cost is significantly higher when running in-editor (closer to a fifth of a microsecond apiece in my quick test), due to the extra safety checks and instrumentation Unity uses there, so you might also consider this a slight quality-of-life improvement for your day-to-day testing work.