We know that Fully Qualified Domain Name (FQDN) consists of hostname.domain.TLD.
Is that hostname also called the subdomain name? What's the hostname and what's the subdomain name?
DNS allows for arbitrary nesting of labels. There is no requirement that any specific label refer to a specific node.
A "node" is a sequence of labels, where typically, each label indicates a point of delegation.
uk are labels designating top-level domains. Within
uk there is a static subdomain structure where effectively the "top level" is
co.uk etc (meaning "top" as in you can't register anything in
uk directly, though of course the
uk administrators could decide to add new second-level labels). Many countries have this second level, though it is by no means universal (and some countries and domains have yet more internal levels like this).
example.com is delegated by the
com top-level domain (also called "zone") to its owner, who can further delegate individual nodes within this domain. So the owner of
example.com could decide that there will be a subdomain
mail.example.com and it shall contain mail servers whose names could be
mx2.mail.example.com, etc. This isn't very common in practice, but a really large organization could delegate part or all of its DNS further to individual departments or separate organizations.
(A common example in real life is service providers. If you run a web or email service on
example.net you might have
acme.example.net etc and have each of these delegated to your customers Ajax Inc and Acme Corp. Another scenario is regional services --
na.example.org to serve North America,
eu.example.org to serve Europe, etc.)
To finally answer your actual question, whether a node is an actual host (an actual server) or just another level in the DNS is completely up to the organization who owns it. It's not uncommon for a node to have both roles (
mail.example.info could be an actual mail server with an IP address, and there could still be a DNS zone containing
mx2.mail.example.info etc. This is not a very compelling example, I'm afraid, but there is no technical reason you couldn't do this. I'll try to think of a better example...)
A "subdomain" is just an indication that a particular label is below the top level and contains additional nodes within. So, "sub" as in "not top", and "domain" as in "label containing more labels".
The disconnect between the mechanics of DNS (there are "zones" with "labels" identifying "nodes") and the actual real-world semantics (there is a set of root, aka top-level domains, and domains within them which are bought and sold, and subdomains within these which typically are arbitrary subdivisions implemented by the domain owner) is by and large a feature, not a bug. The implementation does not specify any particular policy, and can be used for things which are not currently in any policy. We have seen this spark useful innovations and new policies multiple times.