Lambdas
Lambdas are used to implement functional interfaces. Simply said, functional interfaces are interfaces with a single method definition. All listeners in Javacord are functional interfaces and look like this internally (simplified):
@FunctionalInterface
public interface MessageCreateListener {
    void onMessageCreate(MessageCreateEvent event);
}
Before Java 8, you would have implemented this kind of listener as an anonymous class, which would look like this:
api.addMessageCreateListener(new MessageCreateListener() {
    @Override
    public void onMessageCreate(MessageCreateEvent event) {
        // Do stuff
        event.pinMessage();
    }
});
In Java 8, this can be replaced with a lambda expression, which does exactly the same thing, but in a more readable fashion. The method parameter (in this case event) is written in front of the -> arrow, and the method body is written after it.
api.addMessageCreateListener(event -> {
    // Do stuff
    event.pinMessage();
});
TIP
If the method has more than one parameter, it would look like this:
(param1, param2) -> { ... }
There's even a shorter version: If you are only executing one statement, you can get rid of the { } brackets as well:
api.addMessageCreateListener(event -> event.pinMessage());
However, the above method can be shortened even more, by replacing the lambda expression with a so called "method reference".
api.addMessageCreateListener(MessageEvent::pinMessage);
There are also plenty classes in Java 8, that make use of lambda expressions. One example would be the Optional class, which is explained here.
📚 Further Read
This tutorial only focuses on the absolute basics. For an in-depth introduction to lambda expressions, you can take a look at Oracle's article about lambda expressions.