Assuming a is large enough( to be specific a>=b-n), this boils down to
x1+x2+x3+...+xn=b
which is the typical problem of distributing 'b' candies amongst 'n' kids.
if you want to avoid 0 faced dies it should be easy to see that
(y1+1)+(y2+1)...+(yn+1)=b
y1+y2+...+yn=b-n
so a general solution to
z1+z2+...zk=n is
C(n+k-1,k-1)
EDIT after reciving several downvotes:
Assuming we have limit on 'a' i.e. b-n>a,
we can formulate it as a DP problem where
dp[k][j] is no. of ways to get a sum of j using dices 1 to k inclusive
dp[1][j] is 0 if j>a or j==0 else 1
then we can have evaluate following relation
from k = 2 to n
from j = 1 to b
from x = 1 to a
dp[k][j] += dp[k-1][j-x] where x is from 1 to a at max and x
and answer should be dp[n][b]
The storage if of order n*b and runtime O(n*b*a)