The hyphen appears to be a Busybox-specific feature (as is "askfirst", which was how I found that you are using Busybox). The example inittab file says:
# /bin/sh invocations on selected ttys
#
# Note below that we prefix the shell commands with a "-" to indicate to the
# shell that it is supposed to be a login shell. Normally this is handled by
# login, but since we are bypassing login in this case, BusyBox lets you do
# this yourself...
#
# Start an "askfirst" shell on the console (whatever that may be)
::askfirst:-/bin/sh
So, it starts the shell as a login shell (by beginning argv[0] with a hyphen). What a login shell means is beyond the scope of this question, but it generally at least means it will execute different startup files (i.e. ~/.profile).
The convention of using a hyphen in argv[0], rather than a proper command line flag, to tell the shell it is a login shell, is an ancient convention - it dates back to at least Second Edition UNIX. (argv[0] was simply "-" for login shells until Sixth Edition, then it was changed to "-/bin/sh")
execl("/bin/ash","-ash",(char*)NULL))? What OS (or linux distro) are you on? – Random832 Oct 11 '12 at 17:35