Why can't you divide by zero?
Dividing 12 by 3 asks how many groups of 3 make 12. Dividing by 0 asks how many groups of nothing make 12, and no number of empty groups ever does, so there is no answer.

Why tho? Three levels deeper
Why not just say the answer is infinity?
Infinity isn't a number you can multiply back: infinity × 0 doesn't give 12. Worse, dividing 12 by tiny positive numbers heads toward plus infinity, while dividing by tiny negative numbers heads toward minus infinity, so there isn't even one direction to pick.
What about 0 ÷ 0?
Now every number fits: 5 × 0 = 0, 7 × 0 = 0, a million × 0 = 0. With too many answers instead of none, 0 ÷ 0 is also left undefined.
But 0 ÷ 5 is fine?
Yes: 0 ÷ 5 = 0, because 5 × 0 = 0 checks out. Zero can be shared; you just can't share into zero groups.
Division is a question
12 ÷ 3 = 4 because 3 × 4 = 12. Every division has a multiplication hiding behind it, and the answer is the number that makes that multiplication true.
Watch the groups shrink
Make the groups smaller and you need more of them: 12 ÷ 1 = 12, 12 ÷ 0.5 = 24, 12 ÷ 0.1 = 120. As the group size heads to zero, the count grows without end. At exactly zero, there is no count at all.
In calculators and code
Calculators show an error. Some programming languages return special values like Infinity or NaN ("not a number"): labels for "this has no ordinary answer".
Check yourself
Use multiplication to check: what number times 0 equals 7?
Answer
None. Every number times 0 is 0, so 7 ÷ 0 has no answer.