As of the Shadowlands launch (9.0.2), I've had some problems with getting this quest to show up on some of my characters. Eitrigg would not have the quest. I had put in a ticket to Blizzard for help and was met with an automated response that wasn't helpful. After spending several days trying to find out how to overcome this problem, I managed to come up with a solution that worked for me. I'm sharing it here in hopes that it might help someone else.
For whatever reason, it turns out my Grommash Hold was phased because the game had me "in progress" for the BFA intro quest but never put it in my quest log. This was not indicated to me in game and I just sort of stumbled on this being the problem. This is how I resolved it.
- Go to Silithus and talk to Magni. He won’t look like he has a quest to offer, for me he looked like he had a quest for me to turn in but no corresponding quest in my log. When I clicked on him, he did have the quest “The Heart of Azeroth”. He had me go in the heart chamber.
- Complete the following quests. “The Heart of Azeroth” and “Infusing the Heart”. Basically watch the two cinematics, stabilize the heart chamber.
- I accepted but did not actually complete “A Brother’s Help” and “The Warchief’s Order”. (I don’t know if this is required but I waited to abandon these until after I had accepted Machines of War.)
- Go back to Orgrimmar, look in Grommash Hold and Eitrigg had the “Machines of War” quest available to me.
- From there, the rest of the quest chain functioned flawlessly.
I do not believe you can actually attempt this “fix” until your character is level 50. Additionally, if you leveled through Chrome time, there is an additional step as you may not get the phantom “in progress” issue. If that’s the case, you should be able to start the BFA intro quest chain with the “Earthen Guardian” that is standing outside the Great Seal in Dazar’alor. From there, refer back to step 1 listed above.
Hope this helps anyone else who is coming across this issue.
Edit:12/27/2023 - just used the list function in markup to make it easier to read. This method still proves to work.