To people who understand DNS, please forgive me as I make some generalisations…
BIND is software that is commonly used for name servers. It can be configured quite flexibly which is why you see it used so often. The principles I explain below are not limited to BIND, but can be used with almost any name server software worth your time.
Authoritative Name Server has a specific meaning. It means the name server holds the master records for a domain (as opposed to them having been cached somewhere by a Recursive Name Server). If you want the exact, up-to-date record, you ask the authoritative name server. These are also either primary or secondary name servers, by the way.
A Recursive Name Server is a name server that goes out and fetches records for you. Your computer will have been configured to use name servers (either statically or via DHCP) so that you can resolve names on the internet. Those server will be configured to allow recursive queries. When your computer needs to find the IP address of a site you want to visit, it asks the name server to find the record, and it does that by asking other servers in specific order until it finds the record and sends it back to your computer.
Authoritative name servers for your domain are what you would tell your domain registrar about when you delegate (tell the registrar where your name servers are) your domain.
Name servers are usually either authoritative, recursive, or both. They don’t have to be primary or secondary (but they may be), as those terms have other meanings.
A primary name server is the one that holds the copy of the domain records (usually referred to as a zone file) that gets edited when changes are made. Secondary name servers receive a copy of this file after changes were made on the primary name server. Every zone has only one primary name server, but can have many secondary name servers. As Joe mentioned, best practice requires your zone files to be on two servers, so in practice you will always have one primary name server, and should also have a secondary name server.
How does that relate to Virtualmin?
Assuming a vanilla installation, when you create new virtual servers Virtualmin creates a zone file for that domain. When that happens, your Virtualmin server is the primary name server for that zone. It is possible you may have more than one Virtualmin server. Each would be the primary name server for the zones they create. It is possible to configure Virtualmin/Webmin to be a secondary name server for the others. That is, a name server can be both primary and secondary at the same time.
There is much, much more that could be explained, but it may be worth checking out some sites dedicated to that.
As Joe mentioned, it is possible you might want to have other servers handle your DNS rather than Virtualmin. That is up to you but as said, it is more work for you.