Note: I won’t be including Island Scan or Ultra Wormhole Pokémon, as they are harder to get than the ones in the main Pokedex.

Decidueye
Decidueye has solid Attack, a useful typing, and strong moves like Leaf Blade and Spirit Shackle, making it a powerful pick if you can look past its frail defenses. It is a starter though, meaning you’re out of luck if you didn’t pick it.

Lilligant
With Quiver Dance, Sleep Powder, Petal Dance, and Own Tempo, Lilligant can be truly fearsome against opponents like Elite 4 Olivia. However, its one-dimensional nature doesn't leave much room for utility outside of Petal Dance.

Leafeon
Great Attack and solid Defense make it a resilient attacker. It doesn't get many moves, but it really only needs Leaf Blade and X-Scissor anyways. The Moss Rock is in the Lush Jungle, which can be easy to forget.

Lurantis
It’s very slow, but it sports 105 Attack and reasonable defenses. It has a decent movepool, with access to Leaf Blade, Leech Life, and Brick Break.

Shiinotic
Shiinotic is good at being a specially defensive Pokémon with access to Spore. Unfortunately, these traits aren't very useful in an-ingame playthrough, and its low Speed makes it a challenge to use. On the plus side, it has a potent movepool with options like Giga Drain, Dazzling Gleam, and Sludge Bomb.

Parasect
Parasect is not very good on account of its weaknesses to common types, low Speed, and just 95 Attack. To add insult to injury, Shiinotic is a better Spore user.

Tsareena
Steenee is very easy to find in the Lush Jungle, and Tsareena has a phenomenal Attack, though it is slow. Queenly Majesty is niche but useful, and moves like Trop Kick, U-turn, and Acrobatics give Tsareena versatility.

Cradily
Too slow and too defensive to be worth much in-game. It learns a few decent moves, but it arrives at such a low level — and evolves so late — that it isn’t worth using.

Trevenant
An NPC will trade Phantump for Phantump in Tapu Village, making Trevenant a reasonable choice for a midgame Grass type. The boosted experience makes it a strong substitute for Decidueye, though its frailty and low Speed hinder it (sensing a pattern?).

Dhelmise
You can only find it rarely from Seafolk Village, and it's much faster to find any earlier Grass type. Steelworker is a cool Ability though, and it has great Attack and respectable defenses. With moves like Anchor Shot and Power Whip, it’s a fun choice if you don’t mind the wait.

Tropius
It has crippling weaknesses, it’s slow, and doesn’t even have a BST of 500. Tragically, it can't even be an HM user in these games!

Alolan Exeggutor
It's found so late in the game that using it is typically unjustifiable. It does, however, boast a unique movepool: Energy Ball, Psychic, and Flamethrower make it one of the most diverse Grass types available. If you can look past its low Speed, Alolan Exeggutor's 125 Special Attack make it a competent battler.
Based on this, we can narrow the field down to a few Pokémon.
- Decidueye
- Lilligant
- Leafeon
- Tsareena
- Alolan Exeggutor
Lilligant is unfortunately the best special attacking Grass type. Alolan Exeggutor is a viable substitute if you're keen on a Pokemon with coverage, but it comes so late that you might as well use Lilligant until then.
Decidueye, as one of the starters, is a consistent option that will be useful throughout the game. The two most viable physical attackers after Decidueye are Tsareena and Leafeon: both have high Attack, powerful moves, and are available at roughly the same time. Tsareena slightly edges out Leafeon due to its higher Attack and more varied movepool.
Hope I helped!