CharacterBody, as the name suggests, is used for programmatic control of a character.
They use the physics system but are moved using code.
Examples include, playable characters, cars, pushable blocks or anything which collides with walls or other game objects.
Note: This is the same structure you use for Area2D and Area3D