Why are the results of local BLAST and miRbase BLAST different?
The main problem I could identify is that your scoring matrix is not the same; as you said miRbase uses match score of +5 and mismatch penalty of -4.

The BLASTN defaults can be found here. However, I ran the local BLAST using the exact command that you mentioned and the default values that it used were: 
reward = +1 
penalty = -2 

Matrix: blastn matrix 1 -2
Gap Penalties: Existence: 0, Extension: 2.5


The other reasons could be the difference in the database itself (the sequences used) or the version of BLAST used in the two cases.