It's because they don't want to pollute the global namespace. Namespaces are there to help prevent collision of identifiers from different libraries/code etc. Common names like count, max, min are used in a lot of different code. Those 3 are also part of the std:: namespace. If your program uses count for example, then you've got an error if you use "using namespace std;"
using namespace was really only included so legacy code didn't break and people like Stroustrup discourages its use in new code.
Slightly better, you can just pull in certain identifiers from a namespace instead of all of them, for example using std::cout, if you plan on doing a lot of output, but really this is also discouraged.