Is it better to use an ID (int) or a Name (varchar) as PK for a table?
As usual, it depends. Let's first consider what a key is, it is something that uniquely identifies something in your business. Even if you choose to use a surrogate key for some reason you should still identify and implement the natural candidate key's.

A key ideally has a number of properties


unique
stable  -- should not change frequently, not necessarily immutable though
irreducible  -- no subset of the attributes qualify as a key
simple  -- few attributes
familiar  -- meaningful to the user


Quite often there is a conflict between these properties and some kind of compromise has to be made. A natural key - such as name in your case - may not be stable enough and therefor is a bad choice for a key. A surrogate key on the other hand is not familiar to the user. 

To conclude, there is no easy answer to your question, it depends on the situation. Design your keys, and make the best out of it. I would not recommend blindly choosing one approach over the other.