It could be one of two things:
- You can get the job done, but maybe not in the best way possible
- You don't know how to best represent yourself in an interview
1. Getting the job done
It's great to be able to get the job done, but quality matters as well.
To give an example, I'll describe the difference between our senior dev and one of our other devs who's been around here forever:
They both get the job done, but which would you hire?
2. Showcasing your skills
It's entirely possible that in an interview situation you are not able to communicate your knowledge effectively, and thus come across as unskilled.
Since you tell us that it's technical tests that you're having trouble with I think that the problem that plagues you might be far more closely related to not being entirely up to date on the best programming practices and standards of the industry more so than this, but we can't know that.
If you feel that your interview skills might be impacting how you do in these situations maybe set up a list of your skills and experience to bring up in conversation so that you don't forget to mention anything.