Weil das aktuelle Verzeichnis standardmäßig nicht im $PATH (Suchpfad, wie bei DOS) steckt. Wäre auch u.U. ziemlich leichtsinnig.
Abhilfe: Programm explizit aus dem aktuellen Pfad starten: ./program statt program eingeben.
Weil das eine riesige Sicherheitslücke ist. Man stelle sich mal folgendes vor: Ein User legt ein Script namens ls in das Verzeichnis /tmp (wo ja jeder normalerweise schreiben darf). Diese Skript enthält etwas in der Liga von rm -rf $HOME und ist ausführbar. Root (oder ein beliebiger anderer Benutzer) macht ein ahnungsloses cd /tmp und ls -- und schwupps darf er das (hoffentlich) vor kurzer Zeit erstellte Backup wieder einspielen.
Fazit: "." (das aktuelle Verzeichnis, wird durch den einfachen Punkt dargestellt) gehört nicht in den $PATH! Und Verzeichnisse, in denen Dateien stecken, die anderen Usern gehören, allem voran alles unterhalb von /usr/local/ steht, auch nicht! Wenn man alleine am Rechner sitzt und keine anderen User hat (und auch nicht plant, irgendwann mal eine Mailbox aufzumachen oder sowas) ist das vielleicht egal, aber man sollte es sich nicht angewöhnen, genausowenig wie man es sich angewöhnen sollte, seine PIN fürs Homebanking auf den Monitor zu schreiben ...
(Ausnahme: Das Verzeichnis /usr/local/sbin ist explizit für Programme, die der Systemgott für sich (und nur für sich) installiert hat, reserviert (wie z.B. der Back Orifice Client für Linux ;-). Wenn man sich daran hält kann man das natürlich so benutzen.