It's an anti-pattern that has unfortunately resulted from a legitimate problem: people type in the wrong email address and then after sign up, can't access their account.
The problem here is that this solution isn't very user friendly because it's going against conventional interaction (namely, that you can copy and paste from and to form fields). There's no indication on the form that this is some kind of special field where pasting is disallowed. There's no language or microcopy explaining how or why pasting is disabled. This is why it's frustrating: it doesn't work, and you don't know why. F&%#ing form's broken!
So how do we solve this problem? We have a legitimate concern that we'd still like to handle gracefully. Perhaps we can solve this some other way.
For instance, after the user signs up, we could show them a screen saying "We sent you an email. Please check your mail now and click the link in the email we sent you to complete your registration process." This is fairly standard. But in addition to this, we could add "Don't see an email? This is the email address you gave us: email@example.com. Is it incorrect? Click here to change your email address." This gives the user another opportunity to finalise the process on their terms, rather than by us enforcing weird constraints on their interaction with our form.
Of course, this suggestion costs more to implement, which is likely why we see the anti-pattern more often than something more thorough (besides the obvious observation that a programmer was responsible for form design in this case rather than a UI designer). If you have the time and the budget, however, you should consider something like this. Users will thank you for it.