Why do we need so many dummy variables in a regression with categorical predictor? Why not use binary encoding instead of one-hot encoding? If we have $k$ categories of a categorical variable, why do we need $k-1$ dummy variables?
For example, if there are 8 categories, why don't we code them as
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1?

Only 3 dummy variables would be needed as opposed to the commonly used $8-1 = 7$ dummy variables.

You need a dummy variable for each level so that each level can have its own coefficient, independent of the other levels.
Think about how linear models work.  The predicted value is
$$
\hat{y}_i = \sum_j \beta_j x_{ji}
$$
With dummy variables (aka "one-hot encoding"), for each $i$, only one of the $\beta$, the one corresponding to the level of the categorical variable, is added to the sum.  Thus, each level gets its own coefficient that defines the outcome's response when the categorical variable takes on that value$^\star$.
Now, consider what happens with your proposed encoding.  Levels 1 and 2 each get their own response, but Level 3 is constrained to be the sum of the responses for levels 1 and 2.  There is no reason to suppose that this should be the case, so you shouldn't build that constraint into the model.  Having a separate dummy variable for each level allows each level to have its own response that does not depend in any way on the other levels.
$^\star$ Well, except for the one special level that gets its response rolled into the intercept term, but you shouldn't do that.  If there are $k$ levels, use $k$ dummy variables and no intercept instead of $k-1$ plus an intercept.  For example, if you're doing the model in R, use $y\sim x+0$ instead of $y\sim x$.
