When you upgrade your HBase code version, there is occasionally the need to migrate the underlying data store to a new version. However, if you are unaware of this need, then you'll be very confused by what happens when you restart HBase. Using start-hbase.sh, you get messages indicating that the master and regionservers started as expected. However, in reality, it will have tried to start and failed due to a version mismatch. This information is displayed in the logs, but you won't know that until you go log diving.
Instead, let's have the start-hbase.sh script do a check to see if the version number is wrong itself. That way, if it fails, it can write messages about startup failure to the console instead of to the logs. This will make new admins much happier.