Maybe the constraints are artificial. From a layman’s perspective it doesn’t seem all that hard. The satellites are already up there, so why would it be any different from providing coverage on land.
Right now Starlink is a bent pipe model. The customer's station connects to a satellite which relays data to the closest ground station. Therefore, the satellite must be in contact with both the customer station and a ground station at the same time. This is not possible over oceans.
Newer Starlink satellites also have a satellite to satellite laser link which is intended to allow relay from consumer station -> satellite -> other satellite -> ground station to provide coverage over oceans, but this functionality has not yet been enabled and relies on enough satellite density that each satellite can see a neighbor.