You didn't name that dataset; it's automatically created when you create the pool (i.e., volume), and automatically has the same name as the pool. It's a good idea to create datasets within that main dataset for anything you want to share.
The difference in capacity between the volume itself, and the top-level dataset, is due to parity. The capacity shown for the volume is the total of all your disks--the used amount includes your data and the parity for that data, and the free amount is the remaining space free among all your disks. The capacity shown for your dataset accounts for parity--the "used" amount is just your data, and the "free" amount is the free space minus what's used for parity.
What is your hardware, and what's your pool configuration (how many disks, what size, what RAIDZ configuration)?