Выполняется ввод программы:
имя_программы0 arg1 arg2 arg3 ...
.
Таким образом, оболочка должна уже разделить токен, а первый токен уже является именем программы. И, кстати, на стороне программы и на оболочке одинаковые индексы.
Я думаю, что это был просто трюк для удобства (в самом начале), и, как вы видите в других ответах, он также был очень удобен, поэтому эта традиция была продолжена и установлена как API.