Upon further investigation, it seems that it's not the JSON vs fetch that is causing the issue. If you get the questions for the quiz, it gives the real names. If you ask for the questions for a specific submission from a student, then it gives Question 1, Question 2.
I think I was asking for a specific submission to save time. I have one quiz that has (for example) 1000+ questions in it, but only 10 of them were delivered to the student (10 question groups of 100 questions each). Fetching all of the question names could introduce a noticeable delay and potentially run into throttling issues. At least Canvas returns a status that the questions haven't changed since the last time you asked for it (304 status code) and it should still be in the browser's cache, but it seems to take as long to do that as it does to fetch the data. We're now getting into the realm of optimization to make it go faster, where as the few people who would use it would probably just rather have it work.
Without asking for a specific submission, there may be problems getting the names when the questions come from question banks or if the quiz was changed between the time it was taken and the time you're looking at it. I can't remember 5 years ago, but I wonder if the change was because questions coming from a question bank cannot be delivered through just fetching the questions for the quiz (without a submission) or because they wanted to hide the question name for security purposes (so a student doesn't see the code when they look at their results).
Anyway, in preliminary testing, removing the parameters specific to the submission restored the functionality -- until I went to test it on a quiz that had a lot of question groups where not every question was asked. That's most likely a logic problem in my code as it seems to be getting the name data, but not changing it. That code was pretty inefficient, anyway.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.