It's because
LIKE
is a simple Regex processor, and '[' introduces a sequence of characters:
...LIKE 'x[abc]x' would match any of 'xax', 'xbx' or 'xcx' but would not match 'xdx'
See here:
http://www.w3schools.com/sql/sql_wildcards.asp[
^]
I don't know how you get round it though...
[edit]
Oh yes I do:
SELECT * FROM item WHERE itemname LIKE '%[[]%'
[/edit]