Duck jumping is when the player jumps, and ducks at the same time. It’s different from normal crouching because during a duck jump their position is lifted so their bounding box stays level with the head, giving more clearance underneath - allowing to jump on higher things.
A player with their bounding box, in red:
When they duck jump, the bounding box is squashed in half, but aligned to the head (red here).
When the player starts to fall, the bounding box unducks. But it’s still up in their air.
The actual player position (in blue) is slowly merged to be in the same position as the newly unducked bounding box.
I don’t love all the code involved in making this happen, it doesn’t seem like a great solution. But I’m hesitant to change any of the default HL2 movement in the base classes - because we want it to feel just like HL2.