Just because you can do something, it doesn't mean that you should. Shaders are amazing for making almost anything, but making those objects from scratch is more of a waste of time than anything.
The demos over at shadertoy and glslsandbox use these features because they can do it and they don't really have another option there.
Even if you could for instance create a flag with them, it would eat up way too much time of your life and it wouldn't really look any better than a sprite based approach. Combine this with slow/limited interaction between the CPU and the GPU and you'll have a hard time making a good game with this technique.
Most graphical libraries either have a built-in way to display animation or it's trivial using 2d sprites/textures. These give you a comparable result in seconds.
And yes, building procedural animation in shaders is slower than these. There's a reason bigger games don't use them as often (although as pointed out by DMGregory, games like Uncharted 4 do use this style of procedural animation). GPU cores are fast at basic things. Iterations and branching can slow them down a lot.
You should learn how to use shaders, yes. They're amazing, but if there are easier solutions, then go with those.
Using shaders also makes sure your future artists won't have any control over the animations you did. Updating them will take away precious development time from other places.