I guess it could be quite hard to block any URL not ending with a slash from the robots.txt file.
Right, because you would also be blocking the version with the slash by doing so.
The URL rewriting guide for the three different versions of Apache all show that code to handle a trailing slash in that instance. Some hosts don't allow mod rewrite on the htaccess level, and want something like this done within the server configuration, so it depends upon whether you can do that or not.
When you write:
I have recently noticed that I have a couple of duplicate pages that don't end with URLs.
Does that mean that when you go to those pages, without the trailing slash in them, they don't just redirect to the version with the slash? Or do you mean that you see those URLs in search results on the search engine, and that they do redirect? I can't tell from what you've written.
Regardless, if you have any links to that page from within the site, that is the default page of that directory, you want to make sure that those links include the trailing slash.