Main difference is that InstallUtil is not utility meant for service installation but as general installer tool. From MSDN pages you can see that:
"The Installer tool is a command-line utility that allows you to
install and uninstall server resources by executing the installer
components in specified assemblies. This tool works in conjunction
with classes in the System.Configuration.Install namespace."
So it can install service but it has many many many other benefits. Creating executables based on Installer Class gives you programatic control of whole installation/uninstallation procedure. ServiceInstaller and ServiceProcessInstaller, for instance, are used for service installation.
'Sc' utility is used for service control and 'create' command will just create service based on chosen executable.
In your example
1. It is not meant to be installed with InstallUtil and error response should be quite clear about it.
2. InstallUtil fails because of a bug in installation code and using sc
create will probably create a faulty service for you. Check into {exe_name}.InstallLog for details.