DHCP allows a computer to fetch an IP address automatically from a DHCP server, instead of having hardcoded addresses per connection. This allows, as an example, connecting to an open wireless router for the first time without having had a chat with its administrator to get an available IP address.
You may also know from accessing a router's web interface, that connected computers are often listed along with their own hostnames.
This is indeed a feature of many DHCP clients, which allows the client to identify itself to the server, in order to get always the same IP, as an example.
The same feature poses a privacy threat as well: especially in bigger networks, an attacker can listen to DHCP broadcast messages, and identify computer as they log onto the network, profiling them and tracking their usage.
While this may still be possible without hostnames with by tracking MAC Addresses instead, a hostname often reveals more than a bit string. Today's default hostnames in Linux contain the machine owner's name and surname, assuming their Linux accounts also provide this information. Also a nickname may be connected to a person, when looked up on the Internet.
For these reasons I consider it wise to disable the propagation of hostnames on Linux machines; here's how it's done for an Ubuntu/Debian distribution.
/etc/dhcp/dhclient.conf and comment out (prepend a "#") to the lines starting with "send host-name", turning the configuration from this:
# Do send the hostname send host-name = gethostname();
# Do not send any hostname #send host-name = gethostname();
Restart your networking with
restart networking and you're good to go.
While you're working on protecting your Linux box's privacy, you may also want to look into disabling Avahi's broadcasts.