It doesn't look like it's just Chrome actually. I got the same results in Firefox. Looks like the stackoverflow answer addresses the issue? If I change from button type of button to input type of button it works like you would expect.
>> b = Watir::Browser.new :firefox
=> #<Watir::Browser:0x110337500 url="about:blank" title="">
>> b.goto("file:///Users/admin/Desktop/button.html")
=> "file:///Users/admin/Desktop/button.html"
>> b.html
=> "<html xmlns=\"
http://www.w3.org/1999/xhtml\"><head></head><body><button value=\"hey\" onclick=\"alert('Hello world!')\" type=\"button\">Click Me!</button></body></html>"
>> b.button.value
=> "hey"
>> b.button(:value => "hey").exists?
=> false
>> b.button(:value => "hey").click
Watir::Exception::UnknownObjectException: unable to locate element, using {:value=>"hey", :tag_name=>"button"}
from /Library/Ruby/Gems/1.8/gems/watir-webdriver-0.6.4/lib/watir-webdriver/elements/element.rb:490:in `assert_exists'
from /Library/Ruby/Gems/1.8/gems/watir-webdriver-0.6.4/lib/watir-webdriver/elements/element.rb:118:in `click'
from (irb):11
# Changed from button to input type of button
>> b.refresh
=> []
>> b.html
=> "<html xmlns=\"
http://www.w3.org/1999/xhtml\"><head></head><body><input type=\"button\" value=\"hey\" onclick=\"alert('Hello world!')\" />Click Me!</body></html>"
>> b.button(:value => "hey").exists?
=> true