Multiple linear regression with not normally distributed errors

I'm trying to analyze in R how the individuals from my sample use their income in terms of food/house rent/bills/holidays/etc.

My database consists of 7 independent variables (gender, age, etc) and as a dependent variable I have a share of income (decimal number) individuals spend for each category. For example, person A uses their income in the following way: 0.5-house rent, 0.25-food, 0.25-holidays, person B uses their income only on holidays (because they live with parents), etc.

I fit multivariate linear regression for each category but I'm not sure whether I have to include 0-values as well. For example, if somebody doesn't spend money on food I will have 0... should I keep only non-0 values or not?

Another thing I don't know how to deal with is that my dependent variable is not normally distributed. Furthermore, when I fit multiple regression the errors are not normally distributed. Is it bad?

Multiple linear regression is used for modelling continuous output variables. Here, you are trying to model values in the range between $$[0, 1]$$, i.e. whether a given person spends $$x\%$$ on $$[\mathrm{Food}, \mathrm{Bills}, \ldots]$$. Well, they are allowed to spend $$0\%$$ on an item, such as the example person you gave who lives with their parents spending no money on food (and all their money on holidays!). So you should keep 0 values as they are valid outputs for how much money a person spends on a given category.
This is actually the crux of the issue using standard multiple linear regression here. One of the assumptions of using linear regression is precisely that the errors are normally distributed (see here), and the approach here violates that. Fundamentally, the values you are trying to predict (e.g. fractional spend of income on category X) ranges from $$[0, 1]$$, which sets boundaries on your model errors. Say your model gives a value of $$7\%$$ for the fractional spend on bills. And let's assume most people don't spend more than $$10\%$$ on bills, so that's an upper estimate. But let's say there are a few people in your sample that live at home, so for those people the true value of fractional spend on bills for those people is around $$0\%$$. So the errors are going to be skewed (and not normal).