"so why not make it the primary key?"
because each and every query would require a string-comparison to identify the record, which is a lot slower than comparing two numbers.
Then there's case sensitivity. Some datatypes are case sensitive, others are not. You'll want the primary key to be truely unique, so you must do some kind of case-shift to make sure that you dont get 'John' and 'john'.
But most importantly, you don't want to use a name for a primary key, because data like a name can change, think of typos, marriage, and plain old 'I want to be called Jane, not John'. Unless your database supports cascading, editing a primary key will drop you in serious sh*t.
auto_increment numbers don't have a case, they don't change, they are uniquely generated every time, they're perfect.