Some sites don't allow it.
Some sites use non-standard inputs so auto-fill can't recognize a user name / password screen.
Some sites use a different page for setting the original password (sign up screen) than the login screen, so Safari does not know it is the same site.
Some sites use a different URL for each access to the site, so the URL match can't work to auto-fill the login information.