Theoretically: no. If you are sure that only they will ever see this page, then let them script whatever they want.
The problem is that there are many ways that they can get other people to view this page as you cannot control. They can even open a page on a college computer and make them look at it. This is undoubtedly an additional attack vector.
Example: pastebin without permanent storage; you publish, you get the result, that’s it. You can insert a script that quietly adds a "donate" button to link to your PayPal account. Put it on a people’s ample computer, hope that someone will donate ...
I agree that this is not the most shocking and realistic example. However, as soon as you need to protect your security solution with “maybe, but that doesn't sound so bad,” you know that you crossed a specific line.
Otherwise, I do not agree with answers like "I never trust user input." This statement is meaningless without context. The point is how to define user input, which was the whole question. Trust semantically? Syntactically? At what level; just the size? Correct HTML? A subset of Unicode characters? The answer depends on the situation. The bare web server "does not trust user input", but today many sites can be hacked because the boundaries of "user input" depend on your perspective.
Bottom line: do not let anyone influence your product if it is not clear to a sleepy, non-technical consumer what and who.
This excludes almost all JS and HTML from get-go.
PS: In my opinion, the OP is credible in order to ask this question in the first place. “Don't trust your users” is not the golden rule of software development. This is a bad rule of thumb because it is too destructive; this belittles the intricacies of determining the boundaries of acceptable interaction between your product and the outside world. This is like the end of a brainstorming session, while he should start alone.
At its core, software development is about creating a clear interface to and from your application. Everything in this interface is an Implementation, everything outside of it is Security. Creating a program does what you want so exciting that it easily forgets that it does nothing.
Depict the application you are trying to build as a beautiful image or photograph. With the software you are trying to bring this image closer. You use the specification as a sketch, so here, the more messy your specification is, the more blurry your sketch is. The contour of your ideal application is a thin razor, though! You are trying to recreate this image with code. Carefully you fill out the outline of your sketch. At the heart of everything is easy. Use wide brushes: a blurry sketch or not, this part clearly needs coloring. Along the edges it becomes thinner. This is when you realize that your sketch is not perfect. If you go too far, your program begins to do what you do not want, and some of them can be very bad.
When you see a blurry line, you can do two things: take a closer look at your perfect image and try to refine your sketch or just stop painting. If you do the latter, most likely you are not going too far. But at best, you will also make an approximation of your ideal program. And you could still accidentally cross the line! Just because you don’t know where it is.
You have my blessing when you look at this blurry line and try to redefine it. The closer you get to the edge, the more confident you are where it is, and the less likely you are to cross it.
In any case, in my opinion, this question was not one of the security issues, but one of the projects: what are the boundaries of your application and how does your implementation reflect them?
If "never trust user input" is the answer, your sketch is blurry.
(and if you disagree: what if the OP works for "testxsshere.com"? boom! check-mate.)
(someone needs to register testxsshere.com)