Im creating my first domain and joining pcs to the domain. Why do I need to specify my dc as the dns to join a pc to that domain?
You don't have to do that. You could first setup a DNS servers, e.g. BIND, and then setup your Active Directory. The first windows server you promote to be the domain controller will need to write a lot of entries into the DNS so it requires quite a lot of privileges. This is quite complex and Microsoft likes it to just work so it provides its own DNS server which it will install when promoting your first server to DC.
You can find tutorials on the Internet where it is explained how to use a separate DNS server for your Active Directory environment.
Active Directory Domain Services (AD DS) uses Domain Name System (DNS) name resolution services to make it possible for clients to locate domain controllers and for the domain controllers that host the directory service to communicate with each other.
I believe this has to do with the lookup zones for the DNS. As the way DNS works, when you search for a query (I.E a hostname such as yourcompany.com) you start from the DNS server you are pointed to (in most cases that would be your DNS server in the LAN) and if the DNS server you are pointing to doesn't know the answer, he will ask the next DNS server, until he either reaches the root DNS servers or until he gets some reply from the DNS servers on the way/the root DNS servers.
More on how DNS works HERE
Now, as probably no other DNS know your domain, and there is no DC locator in any public DNS, you need to point your DNS to the DC you have created as that DC is the only one who can resolve the hostname "yourcompany.com", and tell you where it is located.