public static void main(String[] args)
is the interface of a Java binary to the external world. More clearly, to an external command line environment. It should not be always so: for example, in an ancient world, as there were Java "applets" (essentially, GUI Java Apps running as today a Javascript runs in a div/iframe), then they used a different initiator method. Or, in any case, if the environment is not a command line environment, like if you develop an app to an app server, then the initiator method will be likely different.
However, in the command line world, you give string arguments to the processes you start. You can not parametrize, for example, a shell script with an Object, you only can do with strings.