Somethimes you just use a few branches for testing feasibility - most of the time at my current company this involves zero testing and poor code quality.
Moreover some developers (me included) are afraid of losing work and push frequently even "broken" code just for the safety of it. I tend to see feature branches as a "work in progress" and as such code quality could be temporarily lower than expected. On merge request linting and testing should however be good.