HUD stands for Heads Up Display. They're attachments that only affect the user interface; only the person wearing them sees them. They're typically used as clickable controls, although they are used for other things like modifying their viewing experience, or displaying status. Here's the official help page. Check out the How to use HUDs video by Torley.
They have their own attachment points that are relative to the client screen. To change a HUD's attachment point you want to use the Attach HUD option instead of Attach. Worn HUD attachments can be moved around in Edit mode like other prims. The mouse-wheel can be used to shrink the HUD layer (shown by a white outline) to the center of the screen.
The user typically clicks on parts of the HUD to interact with it. If a HUD is transparent the user cannot click thru it to touch things on the grid.
Most scripted functionality works with HUDs.
Particles do not. Don't have HUD prims generate them. If a HUD attempts to generate particles, they appear at <0,0,0> in the current sim, annoying the neighbors.
The main sound functions behave differently with HUDs. If a sound is triggered using llPlaySound(), only the HUD wearer will hear it. If the land parcel they're over restricts sound entry/exit, the sound will not play. If a sound is triggered using llTriggerSound(), the wearer and any bystanders will hear it.
Scripted movement of HUD pieces is relative to the attachment points. The position vector used by llSetPos() is interpreted as
Since HUD attachments cannot be clicked thru even if they're invisible, the common solutions to getting them out of the way are moving them and shrinking them.