Well, you need the brackets because you want that the right side of your assignments to be evaluated. If you would omit the brackets, it would just be a string with brackets inside of it.
The array notation gives you the possibility to mix in variables. So for example, you could add an id property from your component, and during runtime, the value would be used. Angular concatenates that array together to a valid string.
In your case, you don't use any properties. It is just a static value. So you could also just write <button routerLink="./plans">
.
Here's the documentation: https://angular.io/api/router/RouterLink