Why can't we accept the null hypothesis, but we can accept the alternative hypothesis? I understand it's reasonable only to not reject the null hypothesis. But why can we accept the alternative hypothesis?
What's the difference?

We should not accept the research/alternative hypothesis.
The main value of a null hypothesis statistical test is to help the researcher adopt a degree of self-skepticism about their research hypothesis.  The null hypothesis is the hypothesis we need to nullify in order to proceed with promulgation of our research hypothesis.  It doesn't mean the alternative hypothesis is right, just that it hasn't failed a test - we have managed to get over a (usually fairly low) hurdle, nothing more.  I view this a little like naive falsificationism - we can't prove a theory, only disprove it†, so all we can say is that a theory has survived an attempt to refute it.  IIRC Popper says that the test "corroborates" a theory, but this is a long way short of showing it is true (or accepting it).
A good example of this is the classic XKCD cartoon (see this question):

Is it reasonable for the frequentist to "accept" the alternative hypothesis that the sun has gone nova?  No!!!  In this case, the most obvious reason is that the analysis doesn't consider the prior probabilities of the two hypotheses, which a frequentist would do by setting a much more stringent significance level.  But also there may be explanations for the neutrinos that have nothing to do with the sun going nova (perhaps I have just come back from a visit to the Cretaceous to see the dinosaurs, and you've detected my return to this timeline).  So rejecting the null hypothesis doesn't mean the alternative hypothesis is true.
A frequentist analysis fundamentally cannot assign a probability to the truth of a hypothesis, so it doesn't give much of a basis for accepting it.  The "we reject the null hypothesis" is basically a an incantation in a ritual.  It doesn't literally mean that we are discarding the null hypothesis as we are confident that it is false.  It is just a convention that we proceed with the alternative hypothesis if we can "reject" the null hypothesis.  There is no mathematical requirement that the null hypothesis is wrong.  This isn't necessarily a bad thing, it is just best to take it as technical jargon and not read too much into the actual words.
Unfortunately the semantics of Null Hypothesis Statistical Tests are rather subtle, and often not a direct answer to the question we actually want to pose, so I would recommend just saying "we reject the null hypothesis" or "we fail to reject the null hypothesis" and leave it at that.  Those that understand the semantics will draw the appropriate conclusion.  Those who don't understand the semantics won't be mislead into thinking that the alternative hypothesis has been shown to be true (by accepting it).
† Sadly, we can't really disprove them either.
