Winning is a virtuous cycle. First place nets you more prize money, greater visibility to advertise top sponsors and the ability to attract the best drivers. There is more resource to make cars even faster: success breeds success. But aligning everything to win is a monumental task.
Williams's last win was Pastor Maldonado's victory at the 2012 Spanish Grand Prix (before that it was Brazil 2004), while McLaren hasn't won since 2012 either. Force India has started over 200 races but has never won one, while both Sauber and Toro Rosso have just a solitary GP win each.
A grid is separated by seconds, so why is it so difficult to make it to the top step of the podium?