@HeatherLuna
There is no built-in report so you would need to compile your own report. @jerry_nguyen gave you a way using Canvas Data.
You can also get the information through the REST API. You get the module progress for a student one at a time and then iterate every student in the course to get the results for the entire course. If you have multiple courses, you would need to iterate through each course.
Iterating through all those takes time and you need someplace to store the results so you can compile it into a report. Canvas Data 2 takes longer to set up, but it's faster for the actual query since the data is already downloaded. The information in Canvas Data 2 is less stale than Canvas Data (1), but your data still might be a couple of hours old and it takes some time to download the data (I update our Canvas Data every four hours). While the API approach takes longer to execute, but the data is current.
The API call you need is to List modules. You add parameters to include[] the items and then specify a student_id. The note for the student_id says "returns module complettion information for the student with this id."
The List modules endpoint is what Canvas uses when you go to Modules and click View Progress. So you're getting the same information the UI shows, but through the API. Depending on how many modules you have, you can add a per_page=100 parameter to hopefully cut down on the number of requests. The default is to only send 10 modules at a time and you have to use pagination to get the rest.
I haven't tested it with a specific student, but there's a note that says the items may not be complete and that Canvas is free to omit items for a particular module if it deems them too numerous inline. So, telling it to deliver 100 modules-worth of information may run afoul of there being too many items. The list module items endpoint also allows for the student_id to be specified. I would start with the list modules and then fall back to the list module items for any modules that didn't return items.
If you didn't go crazy with the number of items in each module, it probably won't be a problem to just use the list module endpoint.