I figured it out (not much documentation on either Matchbox or Dunst). If I explicitly tell dunst what config to source, it works.
So set the display. Kill dunst. Restart telling what config to source. You have to kill and then immediatly restart because there is a daemon that will restart the dunst service automatically. Further research might figure out how to have the daemon start it with the config argument automatically.
[root@runeaudio dunst]# export DISPLAY=":0"
[root@runeaudio dunst]# killall dunst;/usr/bin/dunst -config /usr/share/dunst/dunstrc&
[root@runeaudio dunst]# notify-send "Track 3/12 Ripped"
Setting the display and config only need to be done once in the script (or terminal session).
Some of the config things I changed
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
idle_threshold = 0
### Text ###
font = LiberationSans Mono 20
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = -1
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = no
[urgency_normal]
background = "#e6dc4e"
foreground = "#000000"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon