The Royals actually have a moderately good offense this year, though it may not seem like it.
The Royals are 6th in the AL with a mark of 4.31 runs/game.
If you are interested in rankings, the Royals are 4th in BA, 5th in OBP, and 9th in SLG. Regarding the more minor stuff, they are second in steals (101) and 10th in GIDPs (73). It isn't a great offense, but it isn't a bad one either.
If it doesn't feel like the Royal offense is getting better, that's because it hasn't. At least partially. The Royals were 10th in the AL last season (4.17 per) so there has been some moderate improvement. (Remember all the talk about what a great hitting team the 2010 Royals were? Yea, that was fun. Yay batting average!) The real story begins the year before. In 2009, the Royals scored 4.22 runs per game and posted a very similar .259/.318/.405 line. They were 13th in the AL in runs per game. In 2009, the AL average was 4.82 runs per game, in 2011 the average dropped down to 4.30. Earlier in the decade teams scoring less than 4 runs per game were extremely rare. This year, five teams are below 4 runs a game, and the last two editions of the Mariners have been much closer to 3.
I don't mean to diminsh the improvement the Royals have made. Yes, it is relative, but that is ultimately all that matters. They aren't competing against any 2009 squads this season.
It is especially heartening to see the Royals posting a decent OBP, which has been a long-standing organizational blindspot. Hope for the future? Thanks to Seattle and others for dragging down the AL standards? Who knows.