How do I make sure that my plugin only runs on article detail pages?

Yes, this should be correct. Is_single returns true on single post pages, both normal and custom post types. Note that if you also want to run your script on pages, you will need is_singular. The latter allows you to specify which post types the script should be included with, so it gives you more flexibility.

And yes, this should work for all WordPress blogs, though you should always wonder what happens if some other plugin interferes with yours. There’s no 100% guarantee that it will always work.