It's required to prevent the shell from interpreting and expanding special characters. e.g. in the example you provide, without quotes * will be expanded to a list of files in the current directory.
Maybe the program only parses its first argument. The asterisk would need to be escaped, in any case, to prevent the shell from expanding it.