Interfaces do not allow static blocks but do allow public final static member.
If someone wants to initialize the variable based on some logic, it is not possible in interfaces but possible in classes.
It is not necessary to have a static block to initialize the variables based on some logic, as the variable initializer may contain a method call.
This might be useful to initialize some variables according to the current environment.
As to why static blocks are not allowed, there are some good reasons in the previous answers, but to really know we would need some documentation from the original developers.