You aren't using the full line for the /hadd command

/hadd <table> <item> <data>

Usage
Code:
/add.bword <badword1> <badword2>,<badword3>,<badword4>


For remote usage:
Code:
on *:text:!add.bword*:*:{
  add.bword $2-
}
Code:
alias add.bword {
  var %bad.words = $replace($strip($1-),$chr(44),$chr(32)), %a = 1, %b = $numtok(%bad.words,32)
  while %a <= %b {
    var %badword = $gettok(%bad.words,%a,32)
    if $hget(badword,%badword) {
      dialog -t badword The badword $qt(%badword) already exists in the list.
    }
    else {
      .hadd -m badword %badword $true
      dialog -t badword The badword $qt(%badword) added successfully
    }
    inc %a
  }
}