Причина этого проста.
Предположим, что у вас есть команда с тем же именем, что и приложение в текущем каталоге. Затем запуск команды в оболочке вызовет ваше приложение вместо встроенной команды. Это будет проблемой безопасности, если ничего другого.
Чтобы потребовать, чтобы ./ использовался впереди, оболочка знает, что вы хотите выполнить приложение с заданным именем, а не встроенную команду с это имя.