For instance, I can imagine a system where the ship goes into some form of limited "auto-pilot" mode if it detects imminent danger
What you're referring to is similar to Airbus's flight envelope protection: the fly-by-wire computer won't let the pilots execute manoeuvres it thinks are dangerous. By comparison, Boeing always lets the pilot have the last word, even on its fly-by-wire planes.
There are arguments for both sides. There are plenty of incidents of pilot error causing a crash, and plenty of incidents of computer failure causing a crash. For the latter, I remember an incident with a Qantas A330 that went into a nosedive because a faulty air data computer caused the flight envelope protection system to think the plane was stalling. Here, the protection actually caused the problem.
Operating a large ship like that is very complex, because unlike an aircraft it must operate in close quarters sometimes (like in harbours), and they have a lot of inertia. If the ship was going too fast, it's entirely possible that by the time the sonar would've picked up the obstacles it was too late to reverse anyway.
And having automatic systems preventing you from overriding the pre-programmed course is not a good idea, because there can be perfectly good reasons to deviate (like weather, for example).