Including the interface defining header(s) at first ensures, that the header(s) are self-sufficient. Example:
// foo.h
int mean(const std::vector v);
// foo.cpp - bad include order
include
include <foo.h>
Missing include of vector in foo.h is undiscovered until other users may stumble over it. By including foo.h first the implementer immediately encouters this problem.