What happens why you try to multiply a number by a character string?
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: "b0" * 5
Out[1]: 'b0b0b0b0b0'
But in R
> "b0" * 5
Error in "b0" * 5 : non-numeric argument to binary operator
The %*% operator in your (mx %*% b) is giving the same complaint, because b is a list of two characters, which, of course are non-numeric. Matrices have to be all numeric or all character, so it stands to reason that their combinations do, as well.
The key, I think, lies in misunderstanding the third term in the image
See what happens if you turn those into numeric variables:
b0 <- as.matrix(pi)
b1 <- as.matrix(2.71828)
b <- rbind(b0,b1)