The ArcGIS Javascript API automatically loads the Dojo framework which defines it's own AMD loader. Here, it's attempting to use RequireJs's loader as it doesn't replace the functions if they already exist. However, the Dojo implementation has a few non-standard methods attached to some of its functions (such as 'has' in this example, I think 'add' might be another someone's posted), which dojo's modules use internally. This means that for dojo to function, you are currently required to use Dojo's loader. As a side effect of this, ArcGIS JS API is incompatible with RequireJs currently.
http://requirejs.org/docs/dojo.html has a bit of information from RequireJs (although the linked ticket is misleading as it being 'fixed' refers to that specific code block, and not the framework-wide problem).
Using requirejs with dojo 1.9.1 is a similar problem. They seem to have solved it by using the Source/SDK version of Dojo, but I think this is impossible when working with ArcGIS Javascript API.
This should resolve itself with future dojo/ArcGIS JS releases.