what could be the reason for very inacurate strava tracks of my bike excursions?
GPS units have variable performance for a number of reasons 


Bad satellite position - Simply put, all the satellites transmit "bing!" at exactly the same time.  Your received deals with the differences in the time between reception of each signal.  So the most accurate point will be calculated if the satellites are distributed over the sky.  If all the visible satellites are in the same quarter of the sky, you get a larger possible location, or one with more possible variance.  
Urban Valley, regular valley and multipath - if you're in an area with big hills, or tall buildings, or sometimes even very wet trees the signal can be attenuated, slowed, or reflected.  If the signal is slowed by even 0.001% then that's 22 kilometres of variance, (assuming satellite orbits at 22,000 km.  This can be mitigated somewhat by putting your phone in a toptube bag rather than deep in your pocket.


I carry a folded thermal space blanket made of foil when on long rides, and it messes with the phone terribly if they're in the same pocket.  Doesn't matter which is on top.  Also if your clothing has a metallic weave this can interfere with transmission reception too.


Fudge factor - Some GPS, and the Strava app are known for "slewing" results.  They've used the last N seconds as an input to calculate the next point.  


Here's an example.  Notice entering on the left at fairly decent speed, probably high 30 km/h.  The path slews out into the river, and then winds its way back to the road.   I have seen far worse at this corner but this was all I could find in a brief search.  I do this segment frequently.


Broken antenna/aerial(s)  Your GPS is on a bike and suffers a lot of vibration.  If the signal is not received clearly then that could add delays which impact processing, or could drop one/some of the time pulses from the satellites increasing error
Lagged CPU.  Historically a GPS was a standalone device with dedicated chips for calculating everything.  If you're using a smartphone, there will be dedicated GPU circuitry but it will still need time on the main CPU to do stuff.  If its busy playing songs and whatever else, then that could also delay the processing of point data.
Your speed - If you're going fast enough, minor discrepancies can multiply out to larger errors.   50 km/h is almost 14 metres per second, so a second's lag puts you out by 14 metres.


I'm not familiar with Garmins, but they're single purpose units and are unlikely to suffer CPU starvation. (other than garmin's rear-facing radar whatsits.)

That's all the causes I can think up now.



Solutions  

The best solution is to tweak your strava recording using SNAP (strava needs a polish)   However I've noticed this site has become increasingly harder to get to. 

When it does work, you can load your activity from strava, push the lines back onto the road, and it will create you a GPX file to download.  

Then you upload that fixed file to strava and once its looking better you can delete the original ride.  Do it in that order for safety, I've lost one big ride by getting it wrong.

Second option is to use your garmin to to the logging and leave the cellphone recording as a backup, deleting the worst once once you return home.