Good points, John. I tend to avoid correlated sub-queries as much as possible because there are usually better ways to accomplish the same result. That doesn't mean they're bad - just not always appropriate. Same for cursors - sometimes they have a place because row-by-row processing is the best solution or even the only solution. In this case I used a cursor for convenience of previewing the results and because this is hopefully a one-time or rarely used bit of code. For longer-term uses, I'd definitely recommend saving a script instead of running this sort of code regularly.
I try to make sure others understand why I recommend against certain practices, at least at a basic level. Just saying "don't do this" rarely has the intended effect. It often becomes "don't do this ever" with no understanding about why it was to be avoided in the first place.