OK, I have put up two posts about why I generally don't use Active Record.
http://geekswithblogs.net/gyoung/archive/2006/05/03/77171.aspx
http://geekswithblogs.net/gyoung/archive/2006/04/28/76647.aspx
I feel it only fair now to say why I really like Active Record and when I DO use it. OR Mapping tools such as nhibernate, gentle.net, wilson OR, and object spaces (heh) can make Active Record extremely flexible as they handle large amounts of model mapping (such as column names or relations)
Active Record does as I have said previously force a database centric design. This is not always a bad thing. Often times the situation does in fact call for a database centric design.
Many systems are data entry based with surprisingly little domain logic, as a rule objects end up with a 1-1 mapping between models. In these cases I have a tendency of falling back to active record as it lowers the complexity of my code. Since there is little domain logic within the domain, having a model that simplifies the process of reading and writing to the database is often preferred. Castle Project has done an amazing job overall at simplifying this common case.
When dealing with a client who has a mature database system, often times shared through out many existing applications, it is this database which will be driving your design (chances are it already has views, sprocs, and tables that match your requirements). You probably could get better results by going through and creating a different model with translations occurring which would buy you more flexibility but it being there are already many applications hitting the mature database it is most likely nearly stagnant. Due to the fact that the database is reasonably set in stone and you will likely be working with the same datasource for a very long time, designing for agility of the data source yields little value for the cost of maintaining the translation between the models. OR mappers offer enough flexibility in most of these situations in order to overcome small changes.
Another time that I tend to use Active Record is when I have a team who is less than versed in OOA/D concepts. Active Record allows for a much simpler process for them to follow as it enforces the concept that data access methodologies are 1-1 with domain objects. For many of the programmers coming from a more procedural environment Active Record also offers the benefit of a much smaller learning curve and generally makes more sense to them (I mean we all learn that all related methods should be in an object right?).
The last circumstance that I will mention is in a hurried scenario where deadlines are more important than maintainability. Although many of us don't like to talk about such scenarios, there will always be salesman quoting impossible deadlines. For a custom project one can often merge the concept of persistence into the domain object without major repercussions as it will probably only run against a single model as opposed to many.
For all of the people out there who are referencing their OR mapper directly in their interface ... please take the small step of moving to active record :P