Both are generally bad when they find their way into the user experience of a product and we are advised to know about them but avoid their application.
Specifically what is the difference between the two ?
An anti-pattern, when it appears, is generally a mistake - anti-patterns are things that look like they are a good idea, but in practice they are not (mostly due to side-effects). Something that was done improperly because someone working in the project didn't have the right skills.
A dark pattern is something that deceives the user or has some other negative effect (eg. really bad usability for unsubscribing), and are designed into the product intentionally. Dark patterns can break the user's thrust in the product, author, content or website.
A design pattern is an abstract solution to a design problem that can be implemented in a number of different ways using user interface elements and creating interaction behaviours.
Based on this definition, a 'dark' pattern is really just a design pattern used to achieve a design based on unethical intent, and an 'anti-pattern' is really just a design pattern used to solve a problem that it is not designed to.
I think attaching labels to design patterns is likely to raise the same debate of 'guns don't kill people, people kill people'. So we should not attribute these types of qualities to what are essentially neutral elements.