Yes, that original poem "can be" grammatically correct depending on its meaning. And because it's generally so well written, I would assume its meaning is intended exactly the way it's written, thus is free from errors. But I would like to see the previous sentences to be sure.
Your guess could be correct! "But for..." can mean "Without..." but it can also mean "But, for..." / "However, for..." / "But, in terms of..." / "As for...". To be confident of its intended meaning, I would need to see the previous sentences to fully understand the context.
I have just searched the internet for the previous sentences. Now I can confirm, I think the intended meaning is "But, for", not "Without", so your guess was wrong, but this can not be known without seeing the surrounding sentences for a clear view of context.
Now, this bakes the question, should there have been a comma "But, for" to make the meaning clear? Was it actually wrong grammar due to lack of a comma for clarity? Technically, no, it's not wrong grammar - that comma was not strictly needed because the context was already set by the previous sentence.