Jesus (18K Grass objects + Effects + Sine Behaivor) thats a lot))
I assume that you saw my last example with Tiled Backgrounds but you still want to do it with single objects right?
If you want to go that road then the first thing you need to do is to keep the Grass object count under control. So we can do this by setting a max Width size for your Spawner so they dont get too long and then we can calculate which one is near the viewports (Left or Right) and then (Spawn or Destroy) the grass.
If the spawner is too long then you will be spawning more than you need as some of them will spawn offscreen, so by keeping the width sort you can control the spawn by just spawning the necessary that will be on the screen.
I modified your project:
There are two options:
1-(Spawn & Destroy) as you need but I dont know how big your levels are. so you could have issues with "Garbage collection" and run in some stutters but as it is now I haven't noticed any, it runs quite smooth in my laptop.
https://www.dropbox.com/s/ex6nvd9vp00wwnh/grass_test5.c3p?dl=0
2-Options2 is by recycling the Grass so you dont have to keep (Destroying & Spawning)
So here will only spawn a grass object when there isn't any grass available to use, which is good for "Garbage collection".
Test them both and see which one works better for you.
https://www.dropbox.com/s/iga84y9wm6zsdez/grass_test6.c3p?dl=0
On my laptop runs quite well: